2011-07-14 18 views
0

コアデータをpersistentStoreCoordinator、コアデータモデル、エンティティとしてsqliteを使用して移行していますが、私はすべてを作成しましたが、現在の問題はコアデータを初期化する方法を知らないことですデータファイルをmainBunddleに入れたファイルにコピーします。私はappDelegateコンテキストに私のコンテキストを割り当てるとき既存プロジェクトのコアデータ

-[NSKeyedUnarchiver initForReadingWithData:]: data is empty; did you forget to send -finishEncoding to the NSKeyedArchiver? 
2011-07-14 17:37:59.409 SalePersonApp[1202:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSMutableArray insertObject:atIndex:]: attempt to insert nil object at 0' 

::そして、このようなエラーが常にある

SalePersonAppAppDelegate *app = [[UIApplication sharedApplication] delegate]; 
     NSManagedObjectContext *context = app.managedObjectContext; 

エラーは二行目にありました。

私の言ったように、コアデータがSQLファイルにエンティティを書き戻す方法を知らないので、私のsqliteファイルは空です。

これを行う方法を教えてもらえますか?事前にありがとうございます。

答えて

0

永続ストアをアプリケーションバンドル内に配置すると、アプリケーションバンドル内のすべてが読み取り専用なので、永続的に読み取り専用になります。

書き込み可能なストアを作成するには、通常、DocumentsまたはLibraryのいずれかのバンドル外のアプリディレクトリのいずれかにストアを作成する必要があります。

事前入力済みの永続ストアを提供する必要がある場合は、コアデータを使用して、Xcode内で実行するときにストアを設定します。次に、永続ストアファイル自体をビルドターゲットに追加して、アプリケーションバンドルに書き込むようにします。最初にアプリケーションを実行するときは、永続ストアをアプリケーションバンドルから書き込み可能なディレクトリの1つにコピーします。その後、通常の方法でコピーを開きます。

関連する問題