2013-11-15 69 views
2

如何測試objc_getAssociatedObjectnil?以下說元素不是nil,但關聯的對象從來沒有被設置過,也沒有被訪問過。if(objc_getAssociatedObject(self,&Key))對於零對象返回true

static char orderedElementKey = 11; 

if (objc_getAssociatedObject(self, &orderedElementKey) != nil) 
{ 
    NSLog(@"element is not nil"); 
    return objc_getAssociatedObject(self, &orderedElementKey); 
} 
NSLog(@"elelement was nil !"); 
+0

什麼是被返回的對象? –

+0

NSStringFromClass print(null) –

+0

它適用於我,什麼是orderedElementKey? – Fr4ncis

回答

1
static char orderedElementKey = 11; 
//objc_setAssociatedObject(self, &orderedElementKey, @"value", OBJC_ASSOCIATION_RETAIN); 

if (objc_getAssociatedObject(self, &orderedElementKey) != nil) 
{ 
    NSLog(@"Element: %@", objc_getAssociatedObject(self, &orderedElementKey)); 
} 
else 
{ 
    NSLog(@"element nil !"); 
} 

打印 「元素零!」同時刪除對objc_setAssociatedObject()的評論將打印「元素:值」。你的代碼有什麼不同?

+0

謝謝,但它突然開始按預期工作,我不知道爲什麼它未能返回零。 –