2012-08-02 58 views
0

我想创建一个tableview跟着一个例子代码放在一本书上,但它总是崩溃。 调试器给我看信息:如何修复由于未捕获的异常'NSRangeException'导致tableview崩溃,原因:'*** - [__ NSArrayM objectAtIndex:]:索引1超越界限[0 .. 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,http://p2p.wrox.com/271591-post2.html ,但我不能修改Xcode 4中的plist。4.Xcode显示绿色指针此代码

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

你能减少你发布的代码量吗?尝试只发布相关的代码崩溃发生在 – 2012-08-02 19:37:40

+0

@DanF对不起,我是新的objective-c.Maybe这就是你想要的。 – kururu623 2012-08-02 20:08:13

回答

0

这意味着您正试图访问具有0个元素的数组的第一个元素。我的猜测是错误发生在你拨打objectAtIndex的其中一行。

请记住,数组索引从0开始!

2

您的表格视图数据源方法(numberOfSectionsInTableView:,tableView:numberOfRowsInSection:tableView:cellForRowAtIndexPath:)使用self.years作为数据源。

另一方面,当一个新的“事件”实体添加到核心数据存储中或从核心数据存储中删除时,您有一个提取结果控制器,该控制器调用insertRowsAtIndexPaths:...deleteRowsAtIndexPaths:...

所以你在这里混合两件不合适的东西。发生崩溃是因为您添加了表格视图行,但数据源不会相应地更改。

+0

那么,我该如何解决?如何更改数据源? – 2013-09-07 10:20:22

+0

@GajendraKChauhan:我在写这个答案时修改了这个问题。所以我不知道你有什么问题。 – 2013-09-07 10:57:05

相关问题