0

所以我使用一个 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];

用这个代码挣扎了几个小时。

提前致谢!

4

1 回答 1

4

不应该这样NSString *documentsDirectory = [paths objectAtIndex:0];吗?

您收到的错误是越界错误。这意味着您正在向数组询问位于其最高索引之上的索引处的对象。在这种情况下,即使最高索引为 0(数组中只有一个对象),您也要求索引为 1 的对象(第二个对象)。

于 2012-08-26T12:41:47.303 回答