我正在使用Julius Guzy's示例代码来创建可以保存文本文件的基于文档的应用程序。我运行他的代码,它运行良好,应用程序运行/保存文件 (所有在最新版本的Xcode。尽管Guzy的示例代码使用10.6 SDK编译) 。我正在尝试从中学习并重写代码。我有一切都是为了编译应用程序,但对于 MyDocument.m 中最奇怪的事情。我无法运行它。
@synthesize nsTextViewObj;
Xcode给了我这个错误,我真的不明白。
对于属性'nsTextViewObj'的现有ivar'nsTextViewObj' assign属性必须是__unsafe_unretained
nsTextViewObj; 假设链接到IB中的“文件所有者”。我首先做到了这一点。它打败了我为什么我得到那个错误。 SDK冲突可能吗? 我该如何解决这个问题?
答案 0 :(得分:0)
ARC需要对代码进行一些更改。 Xcode提供了一个自动将非ARC代码转换为ARC的工具:编辑/重构/转换为Objective-C ARC ......
Xcode工具是一个良好的开端,我仍然建议您阅读Transitioning to ARC Release Notes。
我不知道Julius Guzy的代码,但可能你应该改为:
@interface ifc_name : NSWindowController {
NSTextView *__unsafe_unretained nsTextViewObject;
}
@property (unsafe_unretained) NSTextView *nsTextViewObject;
顾名思义,unsafe_unretained
不安全:当对象被释放时,您的引用无效。如果仅部署到iOS 5或更高版本以及OS-X 10.7或更高版本,则可以使用weak
代替。使用weak
时,当对象被释放时,您的引用将变为零。