Я действительно люблю @ synchronized-construct вместо использования NSLocks, когда хочу, чтобы структура данных считывалась или записывалась только одним потоком за раз. Однако, когда я хочу изменить весь объект, мы @synchronizing on, я не уверен, подходит ли @synchronized. То, что я хочу знать, есть ли они работают точно так же:Objective-C @synchronized object changes
// version 1:
// segment 1:
@synchronized(self.obj) {
self.obj = obj2;
}
// segment 2:
@synchronized(self.obj) {
// some other stuff
}
// version 2:
// segment 1:
[objLock lock];
self.obj = obj2;
[objLock unlock];
// segment 2:
[objLock lock];
// some other stuff
[objLock unlock];
возможно дубликат [Изменения объекта запирающего insde @synchronized раздела] (http://stackoverflow.com/questions/1215765/changing-the-locking-object-insde -synchronized сечение) – kennytm