2011-12-18 1 views
0

У меня есть простой NSArrayController, подключенный к одной из моих моделей CoreData. Я могу легко показать все элементы в NSTableView без проблем, однако, если я попытаюсь связать NSTableColumn, содержащий NSPopUpButtonCell, с организованными объектами на одном контроллере, я получаю отвратительное исключение, брошенное на меня. (Если я связываю с NSPopupButton, который находится вне стола, однако, кажется, что все правильно работает)Повторное использование NSArrayController в нескольких местах

Catchpoint 2 (throw)2011-12-18 16:00:07.251 MyApp[6050:707] -[MyCoreDataModel count]: unrecognized selector sent to instance 0x10045aea0 

Catchpoint 2 (exception thrown).2011-12-18 16:01:32.901 MyApp[6050:707] -[MyCoreDataModel count]: unrecognized selector sent to instance 0x10045aea0 
2011-12-18 16:01:32.907 MyApp[6050:707] (
    0 CoreFoundation      0x00007fff9191e286 __exceptionPreprocess + 198 
    1 libobjc.A.dylib      0x00007fff93bd6d5e objc_exception_throw + 43 
    2 CoreFoundation      0x00007fff919aa4ce -[NSObject doesNotRecognizeSelector:] + 190 
    3 CoreFoundation      0x00007fff9190b133 ___forwarding___ + 371 
    4 CoreFoundation      0x00007fff9190af48 _CF_forwarding_prep_0 + 232 
    5 AppKit        0x00007fff8b5bbad3 -[_NSSelectionBinderPlugin populateObject:withContent:valueKey:objectKey:insertsNullPlaceholder:] + 235 
    6 AppKit        0x00007fff8b45242e -[NSSelectionBinder _adjustObject:mode:observedController:observedKeyPath:context:editableState:adjustState:] + 678 
    7 AppKit        0x00007fff8b56f11a -[NSValueBinder updateTableColumnDataCell:forDisplayAtIndex:] + 145 
    8 AppKit        0x00007fff8b5af502 -[_NSBindingAdaptor tableColumn:willDisplayCell:row:] + 112 
    9 AppKit        0x00007fff8b0a00b1 -[NSTableView _tryCellBasedMouseDown:atRow:column:withView:] + 498 
    10 AppKit        0x00007fff8b062a4c -[NSTableView mouseDown:] + 1072 
    11 AppKit        0x00007fff8afc90e0 -[NSWindow sendEvent:] + 6306 
    12 AppKit        0x00007fff8af6168f -[NSApplication sendEvent:] + 5593 
    13 AppKit        0x00007fff8aef7682 -[NSApplication run] + 555 
    14 AppKit        0x00007fff8b17680c NSApplicationMain + 867 
    15 InstaLibrary      0x0000000100001732 main + 34 
    16 InstaLibrary      0x0000000100001704 start + 52 

Почему это так? Почему вы не можете повторно использовать контроллер массива в нескольких местах?

ответ

1

Почему вы не можете повторно использовать контроллер массива в нескольких местах?

Это не то, о чем говорится в сообщении об ошибке. То, что сообщение об ошибке говорит, что вы пытались связать свойство массива в свойство, значение которого не является массив:

2011-12-18 16:01:32.901 MyApp[6050:707] -[MyCoreDataModel count]: unrecognized selector sent to instance 0x10045aea0 

Значение «Я пытался относиться к этому как массив (отправить его count) , но это был не массив (и поэтому не ответил на count), и это проблема ».

Вы уже определили проблему с привязкой, так что теперь вам просто нужно ее исправить. Для получения более конкретных рекомендаций вам нужно будет отредактировать свой вопрос, включив хотя бы один снимок экрана, о котором идет речь, показывая, на каком объекте он связан, какой привязкой он является, к какому объекту вы привязались, какой ключ контроллера вы установили , и какой путь ключа модели вы установили.