我正在分析我的應用程序泄漏,我觀察到一些核心數據實體泄漏,NSManagedObject如何泄漏?我認爲這是由操作系統管理的?核心數據中是否存在泄漏?泄漏說行導致泄漏iOS核心數據如何泄漏?
NSMutableArray *e=[NSMutableArray arrayWithArray:[[user videos] allObjects]];
//the line above^is pointed to by leaks as generating a leak
for(VideoEntity * v in e)
{
UploadThread *ut= [[UploadThread alloc] init];
[ut setVideoEntity:v];
[threads addObject:ut];
[ut release];
}
當用戶被包含VideoEntity爲一對多的關係,我分配VideoEntitys一些線程上運行一個管理對象...泄漏說VideoEntity是泄漏。
有沒有人有任何輸入?
這是一個相當多點,我雖然沒有假設保留或釋放託管對象,但UploadThread的setter被聲明爲retain,這應該不是!即使對象仍然由系統管理,調用保留實際上是否有泄漏(內存未被重新分配)? – Daniel 2010-10-29 22:06:49
不,你絕對應該保留/釋放它們。它們是正常的obj-c對象,它們只是通過上下文完成一些額外的管理。如果你不保留/釋放這些物體,那麼它們可能停留在周圍,或者它們可能會從你下面消失,這取決於環境是否決定保持它們。在思考內存管理時,你應該忽略上下文,只是像對待任何其他模型對象一樣對待它們。 – 2010-10-29 22:54:52