ios扩展机制objc_setAssociatedObject,objc_getAssociatedObject

来源:互联网 发布:装修报价软件 编辑:程序博客网 时间:2024/05/16 14:22
属性扩展用objc_setAssociatedObject,objc_getAssociatedObject,
方法扩展用category

首先导入头文件:#import <objc/runtime.h>

设置静态常量:static char alertinfokey;

- (IBAction)showAlertAction:(id)sender {

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"title" message:@"warn" delegate:selfcancelButtonTitle:@"cancel" otherButtonTitles:@"ok", nil];

    objc_setAssociatedObject(alert, &alertinfokey, @"test value", OBJC_ASSOCIATION_RETAIN);

    [alert show];

    [alert release];

}

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{

    if (buttonIndex == 0) {

        NSLog(@"== : %@",objc_getAssociatedObject(alertView, &alertinfokey));

    }

}

0 0
原创粉丝点击