iOS開発者からのいくつかのコードで見ました。次のコードがあります。
void (^block)(NSUInteger buttonIndex, UIAlertView *alertView) = objc_getAssociatedObject(self, "blockCallback");
しかし。オブジェクト self をブロック コードに割り当てる理由がわかりません。メソッドの完全なコードは次のとおりです。
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
void (^block)(NSUInteger buttonIndex, UIAlertView *alertView) = objc_getAssociatedObject(self, "blockCallback");
if (block) {
block(buttonIndex, self);
}
}