我廣泛使用了代表VIEW - CONTROL - MODEL結構的代表團。通常,在運行應用程序期間保留MODEL對象,導致很少問題。如何知道是否發佈了ios代理
但是,VIEW對象(通常是UIViewController
的實例)被分配並釋放很多次。
將nil
設置爲分配了動態UIViewController
實例的代理對象,當它被釋放時,是我知道如何避免EXC_BAD_ACCESS錯誤的一種方法。
然而,即使我總是用:
if ([delegate respondsToSelector:@selector(communityModel:finishedDeletingComment:)]) {
[delegate communityModel:self finishedDeletingComment:succeeded];
}
它並不是完美的,以防止錯誤。如果不同的VIEW對象共享CONTROL對象的一個代表或有限數量的代表,它總是容易導致代表被無意中替換爲另一個代表,導致EXC_BAD_ACCESS
是否有更好的方式來管理代表,以確定它是否真的可用在調用委託方法的時刻?
我懷疑是否應該改變我爲委託設置屬性的常用方法。我用這種方式來設置代表的屬性:
@property (nonatomic, assign) id<ControlDelegate> delegate;
我是否正確地懷疑屬性設置?