Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c UITableView崩溃_Objective C_Ios_Cocoa Touch_Uitableview - Fatal编程技术网

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