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