3
- (id)methodThatReturnsSomething
{
    @同步(自我){
        返回零;
    }
}

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

那个代码有问题吗?

4

3 回答 3

11

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

在这种情况下,是的,您确实偶然发现了编译器错误。

于 2010-06-23T23:27:39.907 回答
1

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

于 2010-06-23T18:39:38.993 回答
0

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

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

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

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

于 2010-06-23T17:59:38.047 回答