IOS解决UITableView滚动时崩溃

原本今天晚上想写点UITableView的东西,因为以前写的Demo都是用Xib来实现的,所以没有遇到什么问题,今天本打算用代码实现,可是运行测试的时候,在上下滚动UITableView的时候,程序崩溃了。查了半天总算找到了原因,但还是有不理解的地方,也希望有大神帮我解决。

当往下滚动的时候,就会卡死在这里,程序直接崩溃了。

IOS解决UITableView滚动时崩溃_第1张图片

报的错误信息

IOS解决UITableView滚动时崩溃_第2张图片

加载NSArray的代码

NSArray *list = [NSArray arrayWithObjects:@"武汉",@"上海",@"北京",@"深圳",@"广州",@"重庆",@"香港",@"台海",@"天津", nil];
dataList = list;

通过查找资料,发现在dateList前面加上self.就好了

自己也测试了下

dataLIst = list 打印[dataListretainCount]    retainCount=1

self.dataLIst = list 打印[dataList retainCount]    retainCount=2

因为list是对象级的全局变量,在方法中生成的数组是一个autorelease类型的对象。这种情况下,这个autorelease的对象只能保证在方法内不会release。方法执行完后,list对象随时有可能被release。所以需要retain,然后在delloc方法中再release。类级的全局变量,不用autorelease的方式生成,而是用手动的方式来管理。

你可能感兴趣的:(IOS解决UITableView滚动时崩溃)