我有一个简单的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/