| 关联类型 | 等效的@property属性 |
| OBJC_ASSOCIATION_ASSIGN | ASSIGN |
| OBJC_ASSOCIATION_RETAIN_NONATOMIC | nonatomic,retain |
| OBJC_ASSOCIATION_COPY_NONATOMIC | nonatomic,copy |
| OBJC_ASSOCIATION_RETAIN | retain |
| OBJC_ASSOCIATION_COPY | copy |
static void *MyAlertViewKey = “MyAlertViewKey”;
- (void) askUserQuestion
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@“Question” message:@“What?” delegate:self cancelButtonTitle:@“cancel” otherButtonTitles:@“Continue”,nil];
void (^block)(NSInteger) = ^(NSInteger buttonIndex){
if(buttonIndex == 0){
[self doCancel];
} else {
[self doContinue];
}
};
objc_setAssociatedObject(alert, MyAlertViewKey, block, BJC_ASSOCIATION_COPY);
[alert show];
}
- (void)alertView:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
void (^block)(NSInteger) = objc_getAssociatedObject (alertView, MyAlertViewKey);
block(buttonIndex);
}
Effective Objective-C 2.0 编写高质量iOS与OS X代码 在既有类中使用关联对象存放自定义数据,布布扣,bubuko.com
Effective Objective-C 2.0 编写高质量iOS与OS X代码 在既有类中使用关联对象存放自定义数据
原文:http://blog.csdn.net/mad2man/article/details/22290157