我正在努力研究NSDocument,所以我尝试了文本系统概述参考中的Building a Text Editor in 15 Minutes示例。
我对建议的代码做了一些更改,例如used属性和Synthesis,而不是声明和定义访问器方法。
我遵循了参考文献中的每一步,但未能实施第5步:
如果尚未打开,请双击MyDocument.xib以打开 Interface中的文档窗口 生成器。从Xcode,拖动 将MyDocument.h文件图标放到 MyDocument.xib的文档窗口。 此步骤通知MyDocument.xib 文件即MyDocument对象 界面现在有一个出口变量 命名为textView。
当我编译时,它在NSDocument的子类中给了我以下警告:
myDocument可能无法响应setString
MyDocument窗口没有出现,每次我尝试执行时都会在控制台中显示此消息:
- [MyDocument string]:无法识别的选择器发送到实例0x215970
有谁能告诉我哪里可能出错了?我试图在Snow Leopard上运行它...检查代码,你也可以从here下载它。
答案 0 :(得分:1)
我正在努力研究NSDocument,所以我尝试了构建文本 “文本系统概述”参考中的15分钟示例编辑。
我对建议的代码做了一些更改,例如used属性 并合成代替声明和定义存取方法。
我知道这已经很老了,但是这个例子使用了一个ivar NSAttributedString *mString;
所以你需要更改名称或使用类似的东西: -
@property(copy, getter=string, setter=setString:) NSAttributedString *mString;
答案 1 :(得分:0)
我认为在当前的Xcode工具中实际上不需要第5步,因为在保存头文件时Interface Builder会自动选择这些更改。我认为这是在Xcode Tools 3中添加的。
我没有看过你的项目,但听起来好像你的MyDocument.xib文件中有一些连接到错误的东西。大的线索是你的MyDocument“不响应选择器setString
”......这个消息出现的事实意味着这正是你的项目试图做的事情。鉴于您正在使用的指南的主题,听起来像-setString:用于文本视图的消息被发送到您的文档(MyDocument.xib中的文件所有者)。