1
我在做這樣的事情:如何檢查代表是否有效?
@protocol CallbackDelegate
-(void) performCallback;
@end
@interface MyObject : NSObject {
id<CallbackDelegate> delegate;
}
-(void)AsyncFuncCall;
@end
@property (nonatomic, assign) id<CallbackDelegate> *delegate;
擁有MyObject
建立一個委託接收回調函數的代碼:
MyObject *myobject = [[MyOject alloc] init];
myobject.delegate = x;
然後在MyObject
,作爲一個異步函數的結果打電話給我發信號給代表:
-(void)AsyncFuncCall {
[delegate performCallback];
}
大部分時間似乎都很好,除了由於有效的內存清理,我的代理已被釋放的場合。在這種情況下,我只是想不執行回調
有誰知道檢查代理是否有效的最佳方法?
我已經試過各種東西,如:
if (delegate != nil) {
...
}
沒有運氣。
輝煌,這看起來它應該也工作! 我之前留着代表來解決我遇到的問題 - 但是我的代碼看起來很雜亂,而且感覺不太對勁。 上面的解決方案看起來像解決了這個問題。 再次感謝, 尼克。 – 2008-12-30 13:43:45