Повторное использование NSArrayController в нескольких местах

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

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

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


person Tony    schedule 18.12.2011    source источник


Ответы (1)


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

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

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

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

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

person Peter Hosey    schedule 19.12.2011