码迷,mamicode.com
首页 > 其他好文 > 详细

管理关联对象和NSDictionary区别

时间:2017-06-27 17:02:08      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:理解   iat   sdi   基于   关联   透明   oid   stat   logs   

一、问题引出

为类添加关联对象:

void objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy)

为NSDictionary添加对象:

- (void)setObject:(ObjectType)anObject forKey:(KeyType <NSCopying>)aKey;

 

objc_setAssociatedObject可以理解为给object对象(NSDictionary),采用policy策略添加key-value记录。

 

二、区别

1、方法入参数中的key,分别是不透明指针和对象。对象只用调用isEqual:方法返回YES,NSDictionary视为同一记录。而不透明指针必须是完全相同的指针,才能找到同一个关联的对象。

2、基于第一点,objc_setAssociatedObject的入参key,必须是静态全局变量,如static void *associatedKey = "associatedkey";

管理关联对象和NSDictionary区别

标签:理解   iat   sdi   基于   关联   透明   oid   stat   logs   

原文地址:http://www.cnblogs.com/zhouyi-ios/p/7085964.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!