【发布时间】:2014-07-06 21:49:59
【问题描述】:
我有一个看起来像这样的 plist,其中包含 81 个“字典”项:
我有这段代码将 pList 读入 newArray
NSArray *newArray = [[NSArray alloc]initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"DukeCruiseControlTable" ofType:@"plist"]];
当我在调试器中查看 newArray 时,我得到:
newArray 具有正确数量的元素,因此它正在读取正确的文件。但不是包含每个元素的内容,而是仅显示元素的索引(例如 [3])。
我做错了什么?
作为 iOS 新手,我想也许调试器只是向我展示了数组的索引,但是当我使用下一个代码将数组读入另一个对象数组时,我收到一个错误,表明 newArray 元素是“[ 3]" 或任何索引。
for (dukeperfPerfChartLine *object in newArray)
{
[self.perfTable addObject:object];
}
【问题讨论】:
-
粘贴错误日志。我认为数组没有错误。
object是NSDictionary。 -
要调试,您还可以添加断点并在特定索引处打印数组的描述。
-
dukeperfPerfChartLine是NSDictionary的子类吗?如果是这样,我建议尝试从 plist 中获取实际值,而不仅仅是调试或复制数组。试试int value = [[[newArray objectAtIndex:1] objectForKey:@"expTAS_plus20"] intValue]; NSLog(@"%d",value); -
@Isaac
NSDictionary极不可能被子类化,这样做需要重写几个方法。 -
@Zaph 我问是因为 OP 提到他在帖子末尾的 for 循环中出现错误。他的数组包含
NSDictionary对象,但他将它们枚举为dukeperfPerfChartLine。我不确定为什么。
标签: ios objective-c arrays dictionary plist