我正在開發一個iOS 5.0+應用程序與最新的SDK。NSCondition或@synchronized
我有這樣的代碼:
@interface ServerManager()
{
NSCondition* statusLock;
[ ... ]
}
@end
@implementation ServerManager
[ ... ]
- (void)setStatus:(ServerStatus)newStatus
{
[statusLock lock];
status = newStatus;
[statusLock unlock];
}
如果我改變- (void)setStatus:(ServerStatus)newStatus
實現這一個:
- (void)setStatus:(ServerStatus)newStatus
{
@synchronized(statusLock)
{
status = newStatus;
}
}
我做一樣的嗎?
這是我第一次使用NSThread工作,我不知道iOS上的鎖是如何工作的。
你真的需要自定義存取方法嗎?否則,你可以定義'@property(atomic)ServerStatus;' – 2013-04-22 10:48:29
@MartinR哦,謝謝你的建議。我不知道。 – VansFannel 2013-04-22 10:57:13
它應該是'@property(原子)ServerStatus狀態;'在我之前的評論中(編輯太遲)。 – 2013-04-22 11:01:46