美文网首页
runtime 二:关联对象

runtime 二:关联对象

作者: sea777777 | 来源:发表于2016-06-14 11:14 被阅读24次

关联对象(Associated Object)

我们可以把关联对象想象成一个Objective-C对象(如字典),这个对象通过给定的key连接到类的一个实例上。不过由于使用的是C接口,所以key是一个void指针(const void *)。我们还需要指定一个内存管理策略,以告诉Runtime如何管理这个对象的内存。这个内存管理的策略可以由以下值指定:

//menu对象关联到mykey, 然后根据mykey获取到关联对象

static char myKey;

objc_setAssociatedObject(self, &myKey, menu, OBJC_ASSOCIATION_RETAIN);

id anObject = objc_getAssociatedObject(self, &myKey);

objc_msgSend(anObject, @selector(test1));

输出:

2016-06-08 17:13:13.444 DropDownMenuTest[3912:1639816] test1...

相关文章

网友评论

      本文标题:runtime 二:关联对象

      本文链接:https://www.haomeiwen.com/subject/dqhudttx.html