1

Xcode 4.6.2 のモデル エディターで作成されたフェッチ リクエスト テンプレートで問題が発生しました。次の図のように、フェッチ リクエストのコア データ インスペクターで結果タイプの設定を変更しようとしました。

取得リクエストの詳細

ただし、コードでテンプレートを読み込むと、設定が反映されません。

NSFetchRequest *req = [self.managedObjectModel fetchRequestTemplateForName:@"itemIds"];
NSLog(@"Result type is %d", req.resultType);

0を返しますNSManagedObjectResultType。同様に、テンプレートを取得したときに、[詳細設定] の他の設定がモデルから読み込まれていないようです。fetchRequestTemplateForName:私は両方を試しましfetchRequestFromTemplateWithName:substitutionVariables:たが、どちらも望ましい結果をもたらしませんでした。これは Xcode のバグNSManagedObjectModelですか、それとも何か間違っていますか?

4

1 に答える 1

2

これは、Xcode に付属するマネージド オブジェクト モデル コンパイラのバグです。右側のパネルでは、「名前」と「エンティティ」だけがまったく効果があるようです。あなたがしていることは正しいですが、ツールが壊れています。

最も近い回避策は、コードで結果の型を変更することです。モデルから取得したフェッチ リクエストを変更することはできませんが、NSFetchRequest準拠してNSCopyingいるため、コピーを作成して変更することができます。それは最悪ですが、現在のツールでは最良の選択肢のようです。

于 2013-05-10T20:43:33.193 に答える