2014-01-28 28 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'的注释中读到它。 –