0

本のサンプルコードに従ってテーブルビューを作成しようとしていますが、常にクラッシュします。デバッガーは私に情報を表示します:

2012-08-03 02:51:09.854 TableView[652:c07] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]'
*** First throw call stack:
(0x1794022 0x1194cd6 0x1780d88 0xfdd1b7 0x3b24 0x2e62 0xb2c54 0xb33ce 0x9ecbd 0xad6f1 0x56d21 0x1795e42 0x2065679 0x206f579 0x1ff44f7 0x1ff63f6 0x2083160 0x16e84 0x17767 0x26183 0x26c38 0x1a634 0x167eef5 0x1768195 0x16ccff2 0x16cb8da 0x16cad84 0x16cac9b 0x16c65 0x18626 0x1eb2 0x1e25)
terminate called throwing an exception(lldb) 

私はそれが何を意味するのか分かりません。長いコードで申し訳ありません..必要に応じて、コード全体を送信できます。

問題が発生したのは plist が原因だとオンラインの誰かが言っていましたが、私は Xcode 4.4 で plist を変更できません。

- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath
{
    NSManagedObject *object = [self.fetchedResultsController objectAtIndexPath:indexPath];
    cell.textLabel.text = [[object valueForKey:@"timeStamp"] description];
}
4

2 に答える 2

2

テーブルビューのデータソースメソッド(、、numberOfSectionsInTableView:およびtableView:numberOfRowsInSection:tableView:cellForRowAtIndexPath:self.yearsデータソースとして使用します。

一方、新しい「イベント」エンティティがCore Dataストアに追加または削除されたときに呼び出すinsertRowsAtIndexPaths:...、フェッチされた結果コントローラーがあります。deleteRowsAtIndexPaths:...

つまり、ここでは、合わない2つのものを混ぜ合わせています。テーブルビューの行を追加したためにクラッシュが発生しましたが、それに応じてデータソースが変更されていません。

于 2012-08-02T20:12:56.823 に答える
0

これは、要素数が 0 の配列の最初の要素にアクセスしようとしていることを意味します。私の推測では、エラーはあなたが呼び出す行の1つにありますobjectAtIndex

配列のインデックスは 0 から始まることに注意してください!!!

于 2012-08-02T20:01:47.500 に答える