我試圖在移至ARC後調整項目。 我最大的問題是,由於循環引用,對象不會被釋放。例如。在UIView dealloc沒有被調用(我以前用來釋放對象並將它們放在nil上,因爲這些對象阻止了dealloc。不再需要,但現在我有一個UITableViewCells的問題。在一個我有一個通知觀察者,並且細胞留在內存中,如果觀察者創建。當不再使用時從UITableViewCell中移除觀察者
什麼是最好的方法來檢測是否例如)的UITableViewCell不再需要了,所以我可以刪除觀察者和對象可以從內存釋放自己?
這是我的標題:
@interface DOArticleListCell : DOPrototypeCell {
IBOutlet UILabel *_title;
IBOutlet UILabel *_summary;
IBOutlet UILabel *_site;
IBOutlet UILabel *_update;
IBOutlet UILabel *_unpublished;
IBOutlet UIButton *_readButton;
__weak DOArticle *_article;
NSNumber* _isEditor;
}
@property (nonatomic, weak) DOArticle *article;
- (void)updateReadButton;
- (IBAction)toggleReadButton:(id)sender;
@end
(原型細胞只是有稱爲 'populateCell'。一個功能)
聚苯乙烯。當打開選中單元格時調用detailViewController時,我需要觀察者更新「讀取」標籤。
設計你的代碼,當你不想讓引用保持對象存活時,使用弱引用。 – Arkku
你真的需要觀察者嗎? – Moxy
我需要觀察者來更新tableview上的'Read'符號。加載詳細視圖時,該項目被標記爲讀取,並且觀察者由ManagedObjectContextSave通知觸發並更新標籤。我沒有成功讓另一位觀察者更新tableviewcell(當不在視圖中時)。NSFetchedResultsController似乎沒有在tableview上觸發它,儘管也許它應該。 –