在Xcode Document App中:为什么要调用MyDocument的init方法两次?

Ric*_*uhr 2 cocoa cocoa-bindings

我按照Hillegass的第8章在那里实施了RaiseMan应用程序.然后我决定按照相同的过程来实现我正在进行的Cocoa编程类中的练习代码,但是在构建和运行之后我收到了以下非常神秘的错误消息.

无法从类_NSControllerObjectProxy的对象<_NSControllerObjectProxy:0x100460e30>创建BOOL

我不知道这个错误信息的含义.进行谷歌搜索提出了一些点击,但他们的补救措施似乎是做我已经做的事情.

我盯着我在Interface Builder中做的所有连接和任务,没有任何看起来明显错误.

所以我进入调试器并在MyDocument类的init方法中设置断点,并且它被调用两次.怎么会发生这种情况?我应该寻找什么才能使init方法被调用两次?堆栈跟踪显示init由我们自己编写的系统函数调用.

为了比较,我回到了Hillegass第8章之后的项目,并在MyDocument类的init方法中设置了一个断点,并且它被调用一次(这是人们所期望的).

Pet*_*sey 6

无法BOOL<_NSControllerObjectProxy: 0x100460e30>类_NSControllerObjectProxy的对象创建

您似乎已将BOOL属性绑定到控制器,并且未指定模型键路径.最有可能的是,你绑定了一个Cocoa视图类的内置绑定,例如enablededitable.

通过您的笔尖查看您enablededitable您已绑定的视图,并确保它们都绑定到正确的模型键路径.