2010-09-19 36 views
0

我在使用MacRuby和Cocoa设置值时遇到了一些问题。我已经将QCView和QCPatchController插入到XIB中,并将组合物加载到QCPatchController中。一切正在运行,但我无法访问QCView上发布的输入。forKeyPath遇到Quartz Composer和MacRuby问题

attr_accessor :myQCView #this is bound to the QCController 

... 
def AppController 

txt = "I did it" 
@myQCView.setValue(txt, forKeyPath:"patch.text.value") 

end 

我得到一个错误:

NSUnknownKeyException: [<NSNull 0x7fff7115e000> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key value. (RuntimeError) 

我难倒。我试图搜索MacRuby论坛,但我没有运气。

谢谢你的建议

回答

0

阅读异常消息:

NSUnknownKeyException: [<NSNull 0x7fff7115e000> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key value. (RuntimeError) 

为什么你会被试图设置NSNull对象的关键value

让我们来看看代码。 是什么你试图设置密钥value的?

@myQCView.setValue(txt, forKeyPath:"patch.text.value") 

我看到了:您的QCView的patch.text

因此,您的QCView的patch.text是一个NSNull对象。

attr_accessor :myQCView #this is bound to the QCController 

那么这不是一个准确的变量名称。我建议“myQCPatchController”,或者只是“patchController”。

因此,它现在看起来像你试图设置根修补程序的端口text的值。也许根修补程序实际上并没有名为text的端口?

您可能需要在the Quartz Composer mailing list上询问这个问题。

+0

嗨,彼得,谢谢你的回应。我从macruby开发论坛获得了一些帮助,并且遇到了错误的对象绑定。当我需要绑定QCView(因此是变量名称)时,我绑定了QCController。我的另一个问题是@。工作的代码是myQCView.setValue(txt,forKeyPath:“patch.text.value”。 – tsugua 2010-09-22 18:05:00