单身释放方法产生警告?

Dar*_*nor 56 warnings objective-c

在我的单例发布方法中,我没有做任何事情:

-(void) release {
  //A whole lot of nothing.
}
Run Code Online (Sandbox Code Playgroud)

但它产生了这个警告:

警告:在'release'的实现中返回类型上的分布式对象修饰符冲突

我用谷歌搜索,看到其他人有同样的错误,但没有解释警告.有谁知道警告是关于什么的?

ugh*_*fhw 92

你需要声明它oneway.

- (oneway void) release {}
Run Code Online (Sandbox Code Playgroud)

oneway是与分布式对象一起使用的关键字,表示可以异步进行调用.由于NSObject标头在声明release方法时使用它,因此您还必须使用它.除非您使用分布式对象,否则它不会影响您的程序,但它将满足编译器.


Ali*_*are 13

在NSObject.h中,该release方法的定义返回一个oneway void.

oneway关键字用于分布式对象.

从Xcode4.2和LLVM开始,检查更加强大,如果它被以前版本的Xcode或gcc接受,您现在需要添加此oneway关键字,以便LLVM编译器停止对此进行警告.

-(oneway void) release { /* do nothing */ }
Run Code Online (Sandbox Code Playgroud)

这不会对您的代码造成任何影响.