从objective-c中的@synchronized块内部返回

时间:2010-12-27 10:37:12

标签: objective-c thread-safety synchronized

有人可以告诉我是否可以从@synchronized区块内返回?

例如:

    - (id)methodThatReturnsSomething:(BOOL)bDoIt
    {
        @synchronized(self) {      

             if(!bDoIt) return nil;
             ...
        }
    }

或者我应该首先解锁该块(使用NSLock代替)?

1 个答案:

答案 0 :(得分:29)

@synchronized将在您返回时自动删除其异常处理上下文,并放弃锁定。所以你写的代码很好。