我在这里遇到一个奇怪的错误。 我有一个名为__ImageData的数组:
static NSArray *__ImageData = nil;
NSString *path = [[NSBundle mainBundle] pathForResource:@"ImageData" ofType:@"plist"];
NSData *plistData = [NSData dataWithContentsOfFile:path];
NSString *error; NSPropertyListFormat format;
_ImageData = [NSPropertyListSerialization propertyListFromData:plistData
mutabilityOption:NSPropertyListImmutable
format:&format
errorDescription:&error];
当我NS注销数组的内容时,我得到了这个输出:
2012-08-23 16:36:35.573 CAT[28814:c07] {
"Item 0" = {
height = 7121;
name = Map1;
width = 8556;
};
"Item 1" = {
height = 7121;
name = Map2;
width = 8556;
};
"Item 2" = {
height = 7121;
name = Map3;
width = 8556;
};
}
但是当我NSLog NSLog(@"%@", [__ImageData objectAtIndex:0]);
时,我得到了这个例外:
2012-08-23 16:36:35.573 CAT[28814:c07] -[__NSCFDictionary objectAtIndex:]:
unrecognized selector sent to instance 0x719d0f0
2012-08-23 16:36:35.574 CAT[28814:c07] *** Terminating app due to uncaught exception
'NSInvalidArgumentException', reason: '-[__NSCFDictionary objectAtIndex:]:
unrecognized selector sent to instance 0x719d0f0'
*** First throw call stack:
等。
我不知道如何到达这个数组中的对象..它似乎像objectAtIndex找不到任何索引,甚至索引:0,即使里面有数据..任何人都知道如何得到它?
我正在使用Apple的PhotoScroller-template,使用CATiledLayer
。我认为整个事情有点时髦,但是每个人都说我们应该将它用于大图像。对于巨大的图像,任何人都有CATiledLayer的解释或更好的想法吗? (8556 * 7121px)。
为什么我从NSArray获得字典错误?
在执行NSDictionary *dict = [__ImageData objectAtIndex:0]
时,我也会遇到相同的异常。
了Stian。
答案 0 :(得分:2)
_ImageData
不是数组,而是字典。要显示字典的第一个元素,您可以执行以下操作:
NSLog(@"%@", [_ImageData objectForKey:@"Item 0"]);
答案 1 :(得分:-1)
我使用JSON数组遇到了同样的问题。我的解决方法是将其转换为NSDictionary,如下所示:
[(NSDictionary *)json objectForKey:@"detail"];
或者你可以这样做:
NSDictionary *dict = (NSDictionary *)array;