anzaimary

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

三、Objective-C 2.0新特性

  eg.1. static char overviewKey;

     NSArray *array = [[NSArray alloc] initWithObjects:@"One",@"Two",@"Three",nil]; 

     NSString *overview = [[NSString alloc] initWithFormat:@"%@",@"First three numbers"];

     objc_setAssociatedObject (

       array,

       &overviewKey,

       overview,

       OBJC_ASSOCIATION_RETAIN;

      );

     [overview release]; //overview有效

     [array release];// array被释放了,overview也就被释放,所以运行异常

     NSString *associatedObject = (NSString *)objc_getAssociatedObject(array, &overview);//从array中查询关键字overview;

     objc_setAssociatedObject(array, &overviewKey, nil, OBJC_ASSOCIATION_ASSIGN);// 被关联对象设置为nil,后面的关联策略就没有意义;          

    说明:objc_setAssocitatedObject创建两个对象之间的关联;包含4个关键字:

       array : 源对象;

       &overviewKey : 关键字;

       overview : 关联对象;

       OBJC_ASSOCIATION_RETAIN : 约束策略;

posted on 2016-03-09 20:38  anzaimary  阅读(96)  评论(0编辑  收藏  举报