单身释放方法产生警告?

时间:2011-09-11 16:05:19

标签: objective-c warnings

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

-(void) release {
  //A whole lot of nothing.
}

但它产生了这个警告:

警告:执行'release'时返回类型上的分布式对象修饰符存在冲突

我用Google搜索并看到其他人有同样的错误,但没有解释警告。有人知道警告的内容吗?

2 个答案:

答案 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 */ }

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