2011-11-09 12 views
0

コアデータプロジェクトのフレームワークを作成しました。これは、特定のフィードを解析してコアデータに格納します。このフレームワークをパッケージ化して、このフィードをもう一度解析したいときは、フレームワークを別のプロジェクトにドラッグするだけです。しかし、フレームワークを別のプロジェクトにドラッグしようとすると、新しいプロジェクトはCore Dataモデルを見つけることができません(フレームワークに含めても)。フレームワークにどのようにコアデータモデルを取得しますか?

Core Data Modelをフレームワークに組み込み、Core Data Modelファイル(DataModel.xcdatamodeldとDataModel.xcdatamodelという名前があります)を新しいプロジェクトにドラッグすると、コアデータモデルを作成し、期待どおりのデータを解析して保存します。フレームワークに含める必要がある2つのデータモデルと、新しいプロジェクトにドラッグしなければならない2つのモデルを示すためにいくつかの画像が添付されています。

誰でもこの理由を説明できますか?それは正しいとは思わない私はデータフレームの2つのコピーを持っている必要があります、一つはフレームワークに、もう一つはフレームワークが動作するためのものです...とにかく私は私のコアデータとパースデータモデルを使ってプロジェクトを作成して、別のプロジェクトにドラッグするだけです。

答えて

1

は、私はあなたがモデルのコアデータ・スタックをインスタンス化するために使用したコードのスニペットを投稿をお願いすることがあり

ありがとう:それは下に記載されているすべてのこれらのファイルが含まれますか? コードがメインバンドルを使用してモデルリソースを取得する場合(多くの単純なコアデータの例ではそうです)、モデルリソースはフレームワーク内に配置されているため動作しません。

+ (NSManagedObjectModel*)createModelForClass:(Class)modelClass 
{ 
    NSManagedObjectModel *model = 
    [NSManagedObjectModel mergedModelFromBundles: 
    [NSArray arrayWithObject: [NSBundle bundleForClass: modelClass]]]; 
    NSAssert(model != nil, @"Unable to initialize a data model");  
    return model; 
} 

ここで、フレームワーク内で定義された任意のタイプのクラスを渡すことができます。私は通常、フレームワーク内で定義されたモデルのファサード/傘として機能するクラスを作成し、上記のメソッドを呼び出すときにそれを使用します。

関連する問題