在NSMutableArray中使用plist时出错

时间:2012-08-26 12:39:45

标签: objective-c ios uitableview nsmutablearray plist

所以我使用plist文件存储NSMutableArray,添加对象时也将其保存到该plist文件中。但是我收到了这个错误:

Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]'

代码:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:1];
_prsPath = [documentsDirectory stringByAppendingPathComponent:@"records.plist"];

prs = [[NSMutableArray alloc] initWithContentsOfFile:_prsPath];

if (prs == nil) {
    prs = [NSMutableArray array];
}

和“addObject”之后:

[prs writeToFile:_prsPath atomically:YES];

用这段代码捣乱几个小时。

提前致谢!

1 个答案:

答案 0 :(得分:4)

不应该是NSString *documentsDirectory = [paths objectAtIndex:0];

您获得的错误是一个越界错误。这意味着你要求一个数组中的索引高于它的最高索引。在这种情况下,即使最高索引为0(数组中只有一个对象),您也要求索引1(第二个对象)处的对象。