请帮助为什么我的应用程序崩溃时出现以下错误:?

时间:2013-04-25 21:08:22

标签: ios

我收到此错误:

  

[NSIndexPath row]:发送到解除分配的实例0x13135d50的消息

我的代码:

 -(void) scrollViewDidFinishScrolling: (UIScrollView*) scrollView {
     CGPoint point = [self convertPoint:CGPointMake(self.frame.size.width/2.0, kDefaultCellHeight/2.0) toView:self.tableView];
     NSIndexPath* centerIndexPath = [self.tableView indexPathForRowAtPoint:point];

     [self.tableView selectRowAtIndexPath: centerIndexPath
                            animated: YES
                      scrollPosition: UITableViewScrollPositionTop];

     if (centerIndexPath.row != self.currentIndex.row) {
         //Hide the arrow when scrolling
         [self setCurrentIndex:centerIndexPath];
     }

     [self.arrow show:YES];

2 个答案:

答案 0 :(得分:0)

您引用了已解除分配的变量NSIndexPath self.currentRow。代码中的某个地方(否则)你正在获得对它的引用但不保留它 - 如果你这样做,你就不应再看到这个错误了。只需确保在不再需要时将其释放。

答案 1 :(得分:0)

如果不使用ARC(或使用ARC时强,则确保currentIndex是保留属性)。由于indexPathForRowAtPoint:返回一个自动释放的对象,如果要保留它以在其他地方使用,则需要保留它。