私はこのコードを書きました:
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"メッセージが表示されます。私に何ができる?