私はこのようなことをしています:
@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) {
...
}
運がない。