从@synchronized块内的方法返回

Mic*_*all 11 multithreading objective-c ios

我只是想知道是否建议return从一个@synchronized块内的方法?例如:

- (id)test {
   @synchronized(self) {
      if (a) return @"A";
      else return @"B";
   }
}
Run Code Online (Sandbox Code Playgroud)

相反:

- (id)test {
   NSString *value;
   @synchronized(self) {
      if (a) value = @"A";
      else value = @"B";
   }
   return value;
}
Run Code Online (Sandbox Code Playgroud)

这个样本相当简单,但有时候在复杂的方法中,它会使得能够从@synchronized块内返回更简单.

ken*_*ytm 11

没关系.@synchronized知道这个return说法.

(参考:http://www.thaesofereode.info/clocFAQ/#sync-advs) - 死链接
(参考:http://nextstep.sdf-eu.org/clocFAQ/#sync-advs) - 此链接参考上面它的标题是死的,可能不是最新的