私は次のような方法を持っています:
- (void)showPermissionRequestsWithCompletionHandler:(void (^)())completionHandler
{
completionHandler();
}
適切なタイミングでディスパッチできるように、completionHandler をプライベート var に格納するのが好きです。誰もそのようなことを達成する方法を知っていますか?
私は今持っています:
typedef void (^VoidBlockType)();
@interface CMPermissionCenter : NSObject <UIAlertViewDelegate>
{
@private
VoidBlockType _didShowPermissionRequestsBlock;
}
- (void)showPermissionRequestsWithCompletionHandler:(void (^)())completionHandler
{
_didShowPermissionRequestsBlock = [completionHandler retain];
[self doSomeWork];
}
- (void)doSomeWork
{
_didShowPermissionRequestsBlock();
[_didShowPermissionRequestsBlock release];
_didShowPermissionRequestsBlock = nil;
}
しかし、これは正しい方法ではないと何かが教えてくれます。