我收到此错误:
[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];
答案 0 :(得分:0)
您引用了已解除分配的变量NSIndexPath
self.currentRow
。代码中的某个地方(否则)你正在获得对它的引用但不保留它 - 如果你这样做,你就不应再看到这个错误了。只需确保在不再需要时将其释放。
答案 1 :(得分:0)
如果不使用ARC(或使用ARC时强,则确保currentIndex是保留属性)。由于indexPathForRowAtPoint:返回一个自动释放的对象,如果要保留它以在其他地方使用,则需要保留它。