问题:
我似乎在没有设计时或构建错误的情况下设置了绑定,但在运行时找不到 NSManagedObject(帐户实体)的实例。我的配置错误是什么?
配置:
这是一个基本的介绍项目。通过使用 XCode 自动生成大部分 MVC 应用程序(不适用于 iOS),我得到了一个“无代码”解决方案。Xcode 使用 NSManagedObjectContext 和 MainMenu.xib 生成了一个 App Delegate。在 xib 中,我添加了一个 NSObjectController、一个用于创建新实体的 Button 和一个用于编辑新创建实体实例上的值的 TextField。我创建了数据模型,让 XCode 为我的实体生成 NSManagedObjects,现在我只是设置绑定来连接 MVC。
概念绑定流程:
XIB 的 Button -> XIB 的 NSObjectController 添加: -> AppDelegate 的 managedObjectContext
AppDelegate 的 managedObjectContext -> NSObjectController 的 selection.name -> XIB 的 TextField
按钮设置
绑定:Sent Actions = 添加:--> ObjectController
对象控制器设置
属性:mode = Entity Name,value = Account,prepare content = true,Editable = true
Bindings;参数:绑定到 App Delegate,控制器键 = null,模型键路径 = managedObjectContext
文本字段设置
绑定:绑定到 = 对象控制器,控制器键 = 选择,模型键路径 = 名称
问题:
在设计时或构建期间没有错误,运行时错误日志如下。在单击按钮之前加载 XIB 时出现错误。单击按钮后,我收到相同的错误。当 XIB 加载时,我猜测 TextField 正在尝试获取空实体上的列。当我单击按钮时,我猜测 TextField 没有创建的实例的句柄。
错误日志
2014-05-28 16:09:11.526 BingoAppServer[2060:303] Cannot perform operation since entity with name 'Account' cannot be found
2014-05-28 16:09:11.529 BingoAppServer[2060:303] (
0 CoreFoundation 0x00007fff933da25c __exceptionPreprocess + 172
1 libobjc.A.dylib 0x00007fff98919e75 objc_exception_throw + 43
2 CoreFoundation 0x00007fff933da10c +[NSException raise:format:] + 204
3 AppKit 0x00007fff97020658 -[_NSManagedProxy _entity] + 141
4 AppKit 0x00007fff97020515 -[_NSManagedProxy fetchRequestWithSortDescriptors:limit:] + 95
5 AppKit 0x00007fff972708fb -[NSObjectController(NSManagedController) _executeFetch:didCommitSuccessfully:actionSender:] + 73
6 AppKit 0x00007fff9744b846 _NSSendCommitEditingSelector + 267
7 AppKit 0x00007fff970f4f78 -[NSController _controllerEditor:didCommit:contextInfo:] + 182
8 CoreFoundation 0x00007fff932c5a5c __invoking___ + 140
9 CoreFoundation 0x00007fff932c58c4 -[NSInvocation invoke] + 308
10 CoreFoundation 0x00007fff93368516 -[NSInvocation invokeWithTarget:] + 54
11 Foundation 0x00007fff934decb7 __NSFireDelayedPerform + 333
12 CoreFoundation 0x00007fff93341494 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
13 CoreFoundation 0x00007fff93340fcf __CFRunLoopDoTimer + 1151
14 CoreFoundation 0x00007fff933b25aa __CFRunLoopDoTimers + 298
15 CoreFoundation 0x00007fff932fc755 __CFRunLoopRun + 1525
16 CoreFoundation 0x00007fff932fbf25 CFRunLoopRunSpecific + 309
17 HIToolbox 0x00007fff8c772a0d RunCurrentEventLoopInMode + 226
18 HIToolbox 0x00007fff8c7727b7 ReceiveNextEventCommon + 479
19 HIToolbox 0x00007fff8c7725bc _BlockUntilNextEventMatchingListInModeWithFilter + 65
20 AppKit 0x00007fff96cb326e _DPSNextEvent + 1434
21 AppKit 0x00007fff96cb28bb -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
22 AppKit 0x00007fff96ca69bc -[NSApplication run] + 553
23 AppKit 0x00007fff96c917a3 NSApplicationMain + 940
24 BingoAppServer 0x0000000100001252 main + 34
25 libdyld.dylib 0x00007fff915ec5fd start + 1
)