在iOS应用中,防止一个对象在另一个对象使用它时更改实例变量的最佳方法是什么?使用@synchronized(self)
指令就足够了吗?
提前致谢
在iOS应用中,防止一个对象在另一个对象使用它时更改实例变量的最佳方法是什么?使用@synchronized(self)
指令就足够了吗?
提前致谢
@synchronize
(或其他无数同步机制之一)被用来确保线程安全。不可否认,如果使用不当,它将无法正常工作。是的,有更好的方法来实现线程安全代码(例如Tips for Thread Safety)。但无论如何,您能否澄清一下您的观点,即synchronize
不能使其线程安全?我认为这就是同步技术的全部目的。 - Rob@synchronize
可以用来确保线程安全,尽管正如该帖子(以及我上面提供的链接)所证明的那样,有更好的方法来做到这一点。这不像常见的误解,即atomic
确保线程安全(它并不是)。@synchronize
可以,但有更好的方法。语义学,我想。 - Robself.myString; //getter
和,
self.myString=aString; //setter
@property (atomic, strong) NSString* myString;