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 つだけ) であっても、インデックス 1 (2 番目のオブジェクト) のオブジェクトを要求しています。

于 2012-08-26T12:41:47.303 に答える