私はこのコードを書きました:
NSAlert *alert = [NSAlert new];
objc_setAssociatedObject(alert, @"block", aBlock, OBJC_ASSOCIATION_COPY_NONATOMIC);
if (![objc_getAssociatedObject(alert, @"block") isEqual:aBlock]) NSLog(@"failure");
ここで、aBlock
はvoid (^)(NSAlert *)
上記のコードを呼び出す関数に渡されるブロックです。ここで、ブロックに外部変数が含まれていない場合__block
、すべてが正常に実行されますが、そのような変数(たとえば、外部変数)を設定しようとすると__block NSString *string
、@"failure"
メッセージが表示されます。私に何ができる?