首页 > 代码库 > 管理关联对象和NSDictionary区别
管理关联对象和NSDictionary区别
一、问题引出
为类添加关联对象:
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区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。