我正在开发一个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