2010-09-19 2 views
0

У меня возникли проблемы с настройкой значений с использованием MacRuby и Cocoa. Я вставил QCView и QCPatchController в XIB и загрузил композицию в QCPatchController. Все работает, но я не могу получить доступ к опубликованным данным в QCView.для проблем с KeyPath с 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) 

Почему вы пытаетесь установить ключ value объекта NSNull?

Давайте посмотрим на код. Что вы пытаетесь установить ключ value?

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

Я вижу: ваш QCView's patch.text.

Итак, ваш QCView's patch.text является объектом NSNull.

attr_accessor :myQCView #this is bound to the QCController 

Это не точное имя переменной. Я предлагаю «myQCPatchController», или просто «patchController».

Так что теперь похоже, что вы пытаетесь установить значение порта корневого патча text. Возможно, в корневом патче нет порта с именем text?

Возможно, вы захотите спросить об этой проблеме на the Quartz Composer mailing list.

+0

Привет, Питер, спасибо за ответ. Я получил некоторую помощь от форума macruby dev, и у меня был неверный объект. Я связал QCController, когда мне нужно было связать QCView (следовательно, имя переменной). Моя другая проблема была @. Код, который работал, был myQCView.setValue (txt, forKeyPath: «patch.text.value». – tsugua