我有一个简单的NSArrayController连接到我的coreData模型之一。我可以轻松显示NSTableView中的所有项目,但是没有问题,但是,如果我尝试将包含NSPopUpButtonCell的NSTableColumn绑定到同一控制器上的rangedObjects上,则会出现令人讨厌的异常。 (但是,如果我绑定到表外部的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


为什么会这样呢?为什么不能在多个地方重用阵列控制器?

最佳答案

为什么不能在多个地方重用阵列控制器?


这不是错误消息所说的。错误消息表明您试图将数组属性绑定到其值不是数组的属性:


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



意思是“我试图将其视为一个数组(发送给count),但是它不是一个数组(因此没有响应count),这是一个问题”。

您已经确定了问题绑定,因此现在只需要修复它。要获得更具体的建议,您需要编辑问题,以包括至少一个所讨论绑定的屏幕截图,以显示该对象位于哪个对象上,绑定在哪个对象,绑定到哪个对象,设置了哪个控制器键,以及您设置的模型关键路径。

关于cocoa - 在多个地方重用NSArrayController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8554793/

10-08 20:35