单例释放方法产生警告?
在我的单例释放方法中,我没有做任何事情:
-(void) release { //A whole lot of nothing. }
但是它会产生这样的警告:
警告:在“释放”实现中,在返回types上发生冲突的分布式对象修饰符
我search了一下,看到其他人有同样的错误,但没有解释警告。 任何人都知道警告是关于什么?
你需要oneway
宣布。
- (oneway void) release {}
oneway
是与分布式对象一起使用的关键字,表示可以asynchronous地进行调用。 由于NSObject头在声明release
方法时使用它,所以还必须使用它。 它不会影响你的程序,除非你使用分布式对象,但它会满足编译器。
在NSObject.h中, release
方法的定义返回一个oneway void
。
oneway
关键字用于分布式对象。
由于Xcode4.2和LLVM,检查更加强大,如果它被以前版本的Xcode或gcc所接受,您现在需要添加这个oneway关键字,以便LLVM编译器停止对此的警告。
-(oneway void) release { /* do nothing */ }
这不会在你的代码中发生任何事件。