繁体   English   中英

同步返回目标-c

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM