我編寫iOS應用程序並使用imageStore庫來延遲加載圖像並將它們緩存在內存中。 (https://github.com/psychs/imagestore)iOS檢查代理是否存在調用方法
在視圖控制器創建imagestore例如:
imageStore = [ImageStore new];
imageStore.delegate = self;
當圖像加載successfuly,imagestore電話委託方法
- (void)imageStoreDidGetNewImage:(ImageStore*)sender url:(NSString*)url
,這樣做reloadData在tableview上重繪單元格。 所有作品都不錯。但有問題:如果ViewController didUnload(回到導航控制器)和圖像加載,應用程序完成與崩潰,因爲imagestore調用卸載ViewController的方法。
我儘量做到以下幾點: 1)的ViewController我將此代碼放在viewDidUnload部分:
imageStore.delegate = nil;
imageStore = nil;
2)在imageStore我增加檢查零:
if(delegate != nil) {
...call delegate method
}
它的工作原理,但無論如何應定期應用程序崩潰
'2)'是不需要的。消息可以安全地發送到'nil'對象。 – Nekto
感謝您的回答!但沒有它崩潰100%,如果圖像加載和viewcontroller卸載... –