關聯(lián)對象(Associated Object)
我們可以把關聯(lián)對象想象成一個Objective-C對象(如字典),這個對象通過給定的key連接到類的一個實例上蔫耽。不過由于使用的是C接口,所以key是一個void指針(const void *)区岗。我們還需要指定一個內(nèi)存管理策略谨娜,以告訴Runtime如何管理這個對象的內(nèi)存洼哎。這個內(nèi)存管理的策略可以由以下值指定:
//menu對象關聯(lián)到mykey酸茴, 然后根據(jù)mykey獲取到關聯(lián)對象
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...