0

質問:

設計時またはビルド エラーなしでバインドが設定されているようですが、実行時に NSManagedObject (アカウント エンティティ) のインスタンスが見つかりません。私の設定ミスは何ですか?

構成:

これは基本的な導入プロジェクトです。XCodeを使用してほとんどのMVCアプリケーションを自動生成する「コードなし」ソリューションを手に入れました(iOS用ではありません)。Xcode は、NSManagedObjectContext と MainMenu.xib を使用して App Delegate を生成しました。xib に、NSObjectController、新しいエンティティを作成するためのボタン、および新しく作成されたエンティティのインスタンスの値を編集するための TextField を追加しました。データ モデルを作成し、XCode にエンティティの NSManagedObjects を生成させました。次に、バインディングを設定して MVC に接続するだけです。

概念的なバインディング フロー:

XIB のボタン-> XIB の NSObjectController 追加: -> AppDelegate の managedObjectContext
AppDelegate の managedObjectContext -> NSObjectController の selection.name -> XIB の TextField

ボタン設定

バインディング: 送信されたアクション = 追加: --> ObjectController

ObjectController の設定

属性: モード = エンティティ名、値 = アカウント、コンテンツの準備 = true、編集可能 = true
バインディング。パラメーター: App Delegate にバインド、コントローラー キー = null、モデル キー パス = managedObjectContext

テキストフィールドの設定

バインディング: バインド先 = オブジェクト コントローラー、コントローラー キー = 選択、モデル キー パス = 名前

問題:

設計時またはビルド中にエラーはなく、ランタイム エラー ログは以下のとおりです。ボタンをクリックする前に XIB をロードすると、エラーが発生します。ボタンをクリックした後、同じエラーが発生します。XIB が読み込まれると、TextField が null エンティティの列を取得しようとしていると推測されます。ボタンをクリックすると、作成されたインスタンスへのハンドルが 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
)
4

2 に答える 2

2

これは、目的のAccount が見つからないということではありません。マネージド オブジェクト モデルで Account エンティティの説明がまったく見つからないということです適切なマネージド オブジェクト モデルを使用していること、および Account という名前のエンティティがあることを確認してください。

于 2014-05-28T23:50:11.633 に答える