2009-07-06 6 views
1

2009-07-06 06:49:13.666 Spark[9825:10b] -[<NSUserDefaultsController 0x137af0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key hotKeyDisplayEntry.Почему эти ошибки в Xcode означают?

2009-07-06 06:49:13.667 Spark[9825:10b] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<NSUserDefaultsController 0x137af0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key hotKeyDisplayEntry.'

EDIT: То, что я думаю, причиной этой проблемы.

OSStatus MyHotKeyHandler(EventHandlerCallRef nextHandler,EventRef theEvent,void *userData) 
{ 
    EventHotKeyID hkCom; 
    GetEventParameter(theEvent,kEventParamDirectObject,typeEventHotKeyID,NULL,sizeof(hkCom),NULL,&hkCom); 
    HotKeyController *controller = (HotKeyController *)userData; 
    int l = hkCom.id; 
    switch (l) { 
     case 1: [controller->window makeKeyAndOrderFront:NSApp]; 
      break; 
     case 2: [controller->searchWindow makeKeyAndOrderFront:nil]; 
      break; 
     case 3: [controller->entryWindow makeKeyAndOrderFront:nil]; 
      break; 
    } 
    return noErr; 
} 

- (void)awakeFromNib 
{ 
    //Register the Hotkeys 
    EventHotKeyRef gMyHotKeyRef; 
    EventHotKeyID gMyHotKeyID; 
    EventTypeSpec eventType; 
    eventType.eventClass=kEventClassKeyboard; 
    eventType.eventKind=kEventHotKeyPressed; 


    InstallApplicationEventHandler(&MyHotKeyHandler,1,&eventType,(void *)self,NULL); 

    gMyHotKeyID.signature='htk1'; 
    gMyHotKeyID.id=1; 
    if([[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyCodeMain"]!=-999) { 
     RegisterEventHotKey([[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyCodeMain"], [[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyModifiersMain"], gMyHotKeyID, GetApplicationEventTarget(), 0, &gMyHotKeyRef); 
    } 

    gMyHotKeyID.signature='htk2'; 
    gMyHotKeyID.id=2; 
    if([[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyCodeSearch"]!=-999) { 
     RegisterEventHotKey([[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyCodeSearch"], [[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyModifiersSearch"], gMyHotKeyID, GetApplicationEventTarget(), 0, &gMyHotKeyRef); 
    } 

    gMyHotKeyID.signature='htk3'; 
    gMyHotKeyID.id=3; 
    if([[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyCodeEntry"]!=-999) { 
     RegisterEventHotKey([[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyCodeEntry"], [[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyModifiersEntry"], gMyHotKeyID, GetApplicationEventTarget(), 0, &gMyHotKeyRef); 
    } 

} 

В NIB я также подключил текстовое поле к NSDefaultsController.

+0

это, вероятно, поможет опубликовать код, связанный с исключениями (поиск в backtrace в отладчике поможет) – cobbal

+0

Разве это не просто вопрос по вашей последней попытке этой функции http://stackoverflow.com/questions/ 1072822/why-is-xcode-give-me-these-errors? – Abizern

+0

Нет, это другой код. – Joshua

ответ

4

В общем, это означает, что вы пытаетесь получить доступ к ключу hotKeyDisplayEntry для некоторого объекта, но у этого объекта нет такого ключа. Вероятно, вы сделали опечатку или незначительную логическую ошибку.

+3

В частности, Joshua, вы пытаетесь получить доступ к свойству hotKeyDisplayEntry контроллера пользовательских настроек по умолчанию, но у него нет такого свойства. Забыли ли вы связать его свойство? (Ключ контроллера: значения; путь ключа модели: hotKeyDisplayEntry) –

+0

А, вот где я поступил не так, спасибо, Питер! – Joshua

1

Вы (или некоторый код), по-видимому, используете ключевое значение для ваших классов. Я предполагаю, что где-то есть hotKeyDisplayEntry ivar, возможно, определенный в nib и соединение, но не в вашем классе?

прочитать Кроме того, это:

Key-Value Coding in Cocoa (apple.com)

Если это не над ним, вероятно, либо указали наблюдателя по Ивар или с помощью сериализации объектов и на самом деле не имеют акцесора для него , и, таким образом, выдает исключение. Либо, либо вам нужно немного расширить то, что вы на самом деле делаете для меня, чтобы помочь вам!

+0

Я пытался создать «горячую клавишу», я отправлю код, который, как я думаю, заставил вас задуматься. – Joshua

+0

Обновлено первое сообщение с дополнительной информацией, что, по-вашему, сейчас неправильно? – Joshua

 Смежные вопросы

  • Нет связанных вопросов^_^