我下载了 Xcode 4.2 开发者预览版,并创建了一个 Cocoa 应用程序。但是我在代理类中发现了一个非常奇怪的语法:
@property (strong) IBOutlet NSWindow *window;
这是什么意思?编译器甚至无法编译它。
提前感谢!
我下载了 Xcode 4.2 开发者预览版,并创建了一个 Cocoa 应用程序。但是我在代理类中发现了一个非常奇怪的语法:
@property (strong) IBOutlet NSWindow *window;
这是什么意思?编译器甚至无法编译它。
提前感谢!
它表示此属性是一种强关系——一种所有权。在此上下文中,这相当于ARC的retain
关键字版本。
而且编译器甚至无法编译它。
这是有效的ARC代码,因此如果您的工具支持ARC,则肯定应该能够编译它。
确保您使用Xcode 4.2或更高版本,并且将项目的编译器选择设置为Clang(“Apple LLVM Compiler”)。
stringWithFormat:
还是alloc
和initWithFormat:
;ARC会为你维护内存管理规则,净效果是两者都不会泄漏或导致崩溃。 - Peter Hosey
和
__strong在实质上是同义词。
IBOutlet`的存在是正交的。 - bbum