[英]What is __NSArrayI and __NSArrayM? How to convert to NSArray?
[英]How To convert [__NSArrayI integerValue] to integer value?
这行我用来将对象转换为整数值,在循环内我已放置此代码
NSInteger tag=[[arrFullSubCategory valueForKey:@"category"] integerValue];
内部arrFullSubCategory:
(
{
category = 35;
image = "images/Hatchback.jpg";
name = Hatchback;
parent = 20;
},
{
category = 36;
image = "images/Sedan.jpg";
name = Sedan;
parent = 20;
},
{
category = 37;
image = "images/SUV.jpg";
name = SUV;
parent = 20;
}
)
例外:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI integerValue]: unrecognized selector sent to instance 0x7ff4ba58f930'
arrFullSubCategory
是一个数组,您应该首先访问它的元素。 比您将拥有NSDictionary
对象。 之后,您可以访问category
元素。 所以我认为您的代码应该是这样的:
for (NSInteger i = 0; i < arrFullSubCategory.count; ++i) {
NSInteger tag=[[[arrFullSubCategory objectAtIndex:i] valueForKey:@"category"] integerValue];
}
错误的解释:
错误表示您有一个数组 ,而数组不响应integerValue
。
您的变量arrFullSubCategory
引用了一个数组(包含3个元素),每个元素都是一个字典。 如果在字典数组上调用valueForKey:
则将对每个字典执行键查找,并为结果构造一个数组。 在您的情况下,结果(使用文字语法)是数组:
@[ @35, @36, @37 ]
此数组是对您直接有用,还是一次使用一个元素调用一个块的循环或方法,一次访问一个元素,将取决于您的目标。
高温超导
在for循环中尝试此代码,希望对您有所帮助
NSInteger tag=[[[arrFullSubCategory objectAtIndex:i] valueForKey:@"category"] integerValue];
你有字典数组,所以你用下面的代码
[[[arrFullSubCategory objectAtIndex:] objectForKey:@"category"] integerValue]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.