2016-12-11 11 views
1

私の質問はしかし、私は特にまだまで、それに答える何かを見つけるcouslnt非常に簡単です。アプリを更新する際にコアデータモデルの再利用 - ゼロから

私はかなり頻繁に更新していOBJ-Cアプリを持っています。私は同じバンドルIDを持つ新しい迅速なアプリケーションを作成して、古いものをアップデートとして置き換えたいと考えています。私は、ユーザーが文句を言わない自分のデータを失うので、新しいSWIFT-からスクラッチアプリに移行するのが大好きだ私の古いアプリ内8つのコアデータモデルのバージョンのように持っています。それは可能ですか?あなたは、その後のiOSの観点から、それはまったく同じアプリとみなされ、(これはキーです)まったく同じバンドルIDを使用している場合

は、Uに

答えて

3

ありがとうございます。ユーザーがデバイスにバージョン1.xのアプリをインストールし、新しいSwiftプロジェクトを使用して2.xをリリースするとします。あなたのユーザーもiOSも、Swiftで書かれた新しいアプリだと言うことができます。

ここに落とし穴があなたがまったく同じモデル名を使用しない限り、CoreDataは、既存のデータを初期化することができないことであり、あなたは、このためのカスタム移行を書くことを余儀なくされます。

あなたに私の提案は、あなたの古いプロジェクトからxcdatamodelファイルをコピーして、新しいプロジェクトにコピーされたら、それが生成するコードの言語を変更することです。

enter image description here

その後スウィフトであなたのエンティティを再生成し、これまでに起こった何のように作業を続けます。

+0

モデルファイルとバンドルIDをコピーし、モデル名が同じで、すべてのエンティティと再生成されたサブクラスで迅速に切り替えられたことを確認したが、以前のデータを要求しようとすると、データ: -/Uは、私が間違いを犯した可能性があることについて何か考えていますか?今 – kalafun

+0

私は、データを得ることができない理由です、新しいプロジェクトがNSPersistentContainerがモデルとのsqliteファイルへの書き込みを処理するために生成されたことが、おそらくどこかにされて発見しました – kalafun

関連する問題