"强"关键字的作用是什么

zs2*_*020 18 cocoa objective-c automatic-ref-counting

我下载了Xcode 4.2开发人员预览版,并创建了一个cocoa应用程序.但是我在委托类中发现了一个非常奇怪的语法:

@property (strong) IBOutlet NSWindow *window;
Run Code Online (Sandbox Code Playgroud)

这是什么意思?编译器甚至无法编译它.

提前致谢!

Pet*_*sey 20

它表明这个属性是一种强大的关系 - 一种所有权.它是ARCretain在相同上下文中的关键字版本.

编译器甚至无法编译它.

它是有效的ARC代码,因此如果您的工具支持ARC,他们当然应该能够编译它.

确保您使用的是Xcode 4.2或更高版本,并且项目的编译器选项设置为Clang("Apple LLVM编译器").

  • @aroth:因为您需要做的就是声明属性是强还是弱(或复制).此后您不需要执行任何其他操作:您不需要在dealloc中释放对象,在分配给实例变量时您不需要确保保留(如果强大),并且您可以使用弱引用当引用的对象死亡时自动设置为nil. (2认同)