在我的单例发布方法中,我没有做任何事情:
-(void) release {
//A whole lot of nothing.
}
但它产生了这个警告:
警告:执行'release'时返回类型上的分布式对象修饰符存在冲突
我用Google搜索并看到其他人有同样的错误,但没有解释警告。有人知道警告的内容吗?
答案 0 :(得分:92)
您需要声明oneway
。
- (oneway void) release {}
oneway
是与分布式对象一起使用的关键字,用于指示可以异步进行调用。由于NSObject标头在声明release
方法时使用它,因此您还必须使用它。除非您使用分布式对象,否则它不会影响您的程序,但它将满足编译器。
答案 1 :(得分:13)
在NSObject.h中,release
方法的定义返回oneway void
。
oneway
关键字用于分布式对象。
自Xcode4.2和LLVM以来,检查更加强大,如果它被以前版本的Xcode或gcc接受,您现在需要添加此oneway关键字,以便LLVM编译器停止对此进行警告。
-(oneway void) release { /* do nothing */ }
这不会对您的代码造成任何影响。