美文网首页
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