2

プログラムフォルダ内のファイルを再配置し、適切なサブフォルダにグループ化しました。'xcdatamodeld'ファイルを含め、すべてがコンパイル済みソースリストに表示されることを確認しました。

ただし、管理対象オブジェクトモデルの作成は、次のコードでは機能しません。

if (mom_ != nil) {
    return mom_;
}

self.mom = [NSManagedObjectModel mergedModelFromBundles:nil];

return mom_;

私が調べた[NSBundle mainBundle]、具体的には

[[NSBundle mainBundle] pathForResource:@"Words" ofType:@"xcdatamodeld"]

[[NSBundle mainBundle] pathForResource:nil ofType:@"xcdatamodeld"]

どちらもnilを返します。名前とタイプでそれらをチェックすると、他のリソースがあることがわかります。

アプリバンドルファイルには「Words.momd」というフォルダがあります。

何が起こった可能性があり、どのように修正できますか?

4

2 に答える 2

2

使用してみてください:

NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Words" withExtension:@"momd"];

コンパイルされたデータモデルとxcdatamodeldファイルをロードする必要があります。

データモデルは展開リソースです。モデル内のエンティティとプロパティの詳細に加えて、Xcodeで作成するモデルには、ダイアグラムに関する情報(レイアウト、要素の色など​​)が含まれています。この後者の情報は、実行時には必要ありません。モデルファイルは、モデルコンパイラmomcを使用してコンパイルされ、無関係な情報を削除して、リソースの実行時のロードを可能な限り効率的にします。

ソース

于 2012-11-15T18:36:11.493 に答える
0

MagicalRecordsフレームワークを使用できます。

https://github.com/magicalpanda/MagicalRecord

1行のコードでデータベースを設定します。

[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:@"Words"];
于 2012-11-15T18:07:45.857 に答える