我正在构建一个新闻应用程序,您可以在其中拥有一系列代表实际文章的图像。当您点击其中一个时,它会打开主文章页面,该页面底部有一个包含相关文章的滚动视图。
我发现了一个关于底部滚动条的奇怪(可能与 CoreData 相关)问题。当我打开文章页面时,我会获取相关文章,分配一系列articleViewControllers
并将它们的视图添加到滚动视图中。当我从文章页面切换时,我从滚动条中删除所有视图并释放articleViewControllers
. 在使用 Instruments 和几个 heapshots(一个在点击文章之前,另一个在切换回主页时)时,我发现仍然分配了大量内存(见图)
查看非对象选项卡时,我发现大部分分配发生在以下代码行,采用上述viewDidLoad
方法articleViewController
:
NSSet *tempSet = [[NSSet alloc] initWithSet:tempArticle.thumb];
//tempArticle.thumb is the actual problem here
[tempSet release]
tempArticle
是Article
类的一个实例,是 NSManagedObject 的子类。如果我注释掉这两行代码,一切正常,所以我猜这是 CoreData 使用错误的结果。
任何帮助表示赞赏。谢谢!