同步返回目标-c

时间:2010-06-23 17:46:31

标签: objective-c synchronized

- (id)methodThatReturnsSomething
{
    @synchronized(self) {
        return nil;
    }
}

当我在Xcode上执行此操作时,它会向我返回一个警告:“控件到达非void函数的结尾”

该代码有问题吗?

3 个答案:

答案 0 :(得分:11)

由于编译器的某些版本中的错误已在其他/更高版本的编译器中修复,因此它会阻止编译器警告。

在这种情况下,是的,你真的偶然发现了一个编译错误。

答案 1 :(得分:1)

发布的代码中的同步是多余的,但它没有问题:
@synchronized块可以正常退出,也可以通过例外退出。由于您已经有一个return语句,因此不需要在该块之后的另一个语句。

答案 2 :(得分:0)

我不明白你想在代码中做什么,但是

- (id)methodThatReturnsSomething
{
    @synchronized(self) {
    }
    return nil;
}

应该具有相同的效果(推迟返回,直到与self关联的锁被释放),而没有编译器警告。

但是:你想做什么?您不必以这种方式放置@synchronized