- (id)methodThatReturnsSomething { @synchronized(self) { return nil; } }
当我在Xcode上执行此操作时,它会向我返回一个警告:“控件到达非void函数的结尾”
该代码有问题吗?
答案 0 :(得分:11)
由于编译器的某些版本中的错误已在其他/更高版本的编译器中修复,因此它会阻止编译器警告。
在这种情况下,是的,你真的偶然发现了一个编译错误。
答案 1 :(得分:1)
发布的代码中的同步是多余的,但它没有问题:
@synchronized
块可以正常退出,也可以通过例外退出。由于您已经有一个return
语句,因此不需要在该块之后的另一个语句。
答案 2 :(得分:0)
我不明白你想在代码中做什么,但是
- (id)methodThatReturnsSomething
{
@synchronized(self) {
}
return nil;
}
应该具有相同的效果(推迟返回,直到与self
关联的锁被释放),而没有编译器警告。
但是:你想做什么?您不必以这种方式放置@synchronized
。