2014-01-28 47 views
0

當設置對象時,我看不到任何策略(OBJC_ASSOCIATION_RETAIN_NONATOMIC)for atomic,objc_setAssociatedObject中的原子策略

objc_setAssociatedObject(self, ObjectTagKey, newObjectTag, OBJC_ASSOCIATION_RETAIN_NONATOMIC); 

或者它是默認的,因此我不必關心線程安全嗎?

感謝

回答

0

OBJC_ASSOCIATION_RETAIN是你在找什麼。

僅供參考,這裏有所有可能的值(從objc/runtime.h):

enum { 
    OBJC_ASSOCIATION_ASSIGN = 0,   
    OBJC_ASSOCIATION_RETAIN_NONATOMIC = 1, 
    OBJC_ASSOCIATION_COPY_NONATOMIC = 3, 
    OBJC_ASSOCIATION_RETAIN = 01401,  
    OBJC_ASSOCIATION_COPY = 01403   
}; 
+0

我runtime.h看到這個,所以我想這不使用* _NONATOMIC則默認爲原子?因此OBJC_ASSOCIATION_ASSIGN是默認的ATOMIC?謝謝 –

+0

是的。你可以在'objc/runtime.h'的註釋中讀到它。 –