Objective c UITableView崩溃
有人知道为什么这个表视图代码会崩溃吗 在我的Objective c UITableView崩溃,objective-c,ios,cocoa-touch,uitableview,Objective C,Ios,Cocoa Touch,Uitableview,有人知道为什么这个表视图代码会崩溃吗 在我的viewDidLoad中: itemArray = [NSArray arrayWithObjects:@"1", @"2", @"3", @"4", @"5", @"6", @"7", nil]; 然后,在我的cellforrowatinexpath方法中: cell.textLabel.text = [NSString stringWithFormat:@"Item (%@)", [itemArray objectAtIndex:indexPat
viewDidLoad
中:
itemArray = [NSArray arrayWithObjects:@"1", @"2", @"3", @"4", @"5", @"6", @"7", nil];
然后,在我的cellforrowatinexpath
方法中:
cell.textLabel.text = [NSString stringWithFormat:@"Item (%@)", [itemArray objectAtIndex:indexPath.row]];
当我向下滚动(即,使对象1离开屏幕)然后向后滚动以尝试查看对象1时,它在前一行崩溃
如果我用这样的东西来替换冒犯的行,那就好了:
cell.textLabel.text = @"test";
更新:答案是没有保留阵列。 此行修复了问题:
itemArray = [[NSArray arrayWithObjects:@"1", @"2", @"3", @"4", @"5", @"6", @"7", nil] retain];
或
您的itemArray似乎未被保留<代码>数组WithObjects:返回自动删除的对象。您需要
保留
或复制
它,或使用保留属性的语法糖。您的itemArray似乎没有被保留<代码>数组WithObjects:返回自动删除的对象。您需要保留
或复制
它,或使用保留属性的语法糖。如果没有看到更多的代码,就不可能说,但是,数组的大小是否与表中的行数不同?一开始它很好,但在屏幕上来回滚动单元格时崩溃,这表明重用标识符可能存在问题。普通人,请尝试使用您拥有的。如果您使用了符号化的stacktrace,即使是baby也能做到:)如果看不到更多的代码,就不可能说,但是,数组的大小是否与表中的行数不同?一开始它很好,但在屏幕上来回滚动单元格时崩溃,这表明重用标识符可能存在问题。普通人,请尝试使用您拥有的。如果您有symobilicated stacktrace,甚至baby也可以这样做:)或者,如果它是声明的,并且具有属性(非原子,retain)
,并且是合成的d,那么改为[self-setItemArray:…]
。@Eiko如果它是retain问题,它会在第一次调用-objectAtIndex:
时立即崩溃-cellforrowaatindexpath:
@biofe。不,不一定。当表第一次请求单元格时,视图可能会被加载,因此自动释放池可能仍然存在。@Biofe表示数组不会立即释放,但会在一段时间后释放,因此它不会在first-objectAtIndex
@Eiko Offtopic上崩溃:我在2007年也用一个国际象棋程序开始了iOS编程。早在你们到达之前。检查我的配置文件。或者,如果它是声明的并且具有属性(非原子,保留)
,并且是合成的d,那么改为执行[self-setItemArray:…]
。@Eiko如果它是保留问题,它会在第一次调用-objectAtIndex:
时立即崩溃-cellForRowAtIndexPath:
@biofe。不,不一定。当表第一次请求单元格时,视图可能会被加载,因此自动释放池可能仍然存在。@Biofe表示数组不会立即释放,但会在一段时间后释放,因此它不会在first-objectAtIndex
@Eiko Offtopic上崩溃:我在2007年也用一个国际象棋程序开始了iOS编程。早在你们到达之前。检查我的个人资料。
itemArray = [[NSArray alloc] initWithObjects:@"1", @"2", @"3", @"4", @"5", @"6", @"7", nil];