我遇到了问题,我无法弄清楚发生了什么
我有一个tableview,我有一个属性名称newsData。 我设置了一切,工作正常! 然后在模拟器中,我调用内存警告,看看应用程序是如何工作的。 我可以看到tableview正在发布,当我回调viewdidload时,我可以看到这个数组现在是类CALayerArray! 当我尝试访问它时,我的程序崩溃了!
发生了什么事? 谢谢你的帮助。
答案 0 :(得分:2)
您是否在viewdidload调用中重新分配了tableview?发布后你需要这样做。您可能希望在释放后将tableView设置为nil,以避免崩溃(这仍然需要您在释放后重新分配并初始化tableView!)
[tableView release];
tableView = nil;
澄清:我不是说,你需要在释放之后设置任何对象为零!但在发布之后,你应该知道对象已经被释放了!
答案 1 :(得分:0)
根据代码的不同,有很多可能的原因。首先,当你说“我有一个tableview并且我有一个属性名称newsData”时,我很困惑。 newsData
属于哪个对象?您是否将UITableView
分类,或者您的意思是这是您UITableViewDataSource
的ivar?
什么是newsData
?这听起来应该是NSData
,但你是说它是NSArray
吗?
您应首先审核您指定newsData
的所有位置。在大多数情况下,我会说你将它分配给不返回NSArray
的东西。我怀疑在这种情况下因为CALayerArray
是私有的。这看起来更像是你正在访问用于其他东西的内存。我会检查你的内存警告代码和你的viewDidUnload:
代码并运行静态分析器作为开始。