0

我收到此错误:

[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];
4

2 回答 2

0

您正在引用一个已释放的变量,NSIndexPath self.currentRow. 在您的代码中的某个地方(其他地方),您获得了对它的引用但没有保留它 - 如果您这样做,您应该不再看到此错误。只要确保在不再需要它时释放它。

于 2013-04-25T21:12:25.867 回答
0

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

于 2013-04-26T00:56:48.137 回答