[英]Synchronized return objective-c
- (id)methodThatReturnsSomething { @synchronized(self) { return nil; } }
当我在Xcode上执行此操作时,它会向我返回一个警告:“控件到达非void函数的结尾”
这段代码有问题吗?
由于编译器的某些版本中的错误在编译器的其他/更高版本中得到修复,因此它会限制编译器警告。
在这种情况下,是的,你真的偶然发现了编译器错误。
发布的代码中的同步是多余的,但它没有问题:
@synchronized
块可以正常退出,也可以通过异常退出。 由于您已经有一个return
语句,因此不需要在块之后的另一个语句。
我不明白你想在代码中做什么,但是
- (id)methodThatReturnsSomething
{
@synchronized(self) {
}
return nil;
}
应该具有相同的效果(推迟返回直到与self
关联的锁被释放),而没有编译器警告。
但是:你想做什么? 您不必以这种方式放置@synchronized
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.