2016-06-27 10 views
0

私はアプリの最初のバージョン1.0をアプリストアにアップロードしていて、100人のユーザーがダウンロードしてそれを使用して、私は同じアプリにいくつかの追加機能を追加し、次のバージョンをアップロードする例:1.2アプリストアに次のバージョンのiosアプリをアップロードした場合、古いデータが削除されます

Thenこれらのアプリケーションをすでに使用している100人のユーザーが次のバージョンを更新しました。

私の質問は次のとおりです。次のバージョンを更新するときに最初のバージョンでは、彼らは 2.コアデータに 1. Nsuserデフォルトで

を自分のデータが保存されている場合は、それが削除されます。

何がプロセスになりますか、いくつか説明することができます。

+1

https://www.objc.io/issues/4-core-data/core-data-migration/変更がcoredataであるが存在する場合、ユーザーがアプリを更新している一度はい、その後、すべての古いレコードが削除を取得します。この問題を解決するには、coreDataの移行を使用してください。 –

+0

NsuserdefaultとPlistはどうですか? – VyTcdc

+0

いいえ....このリンクをご覧くださいhttp://stackoverflow.com/questions/1638766/do-nsuserdefaults-persist-through-an-update-to-an-app-in-the-appstore –

答えて

2

データモデルを変更した場合は、コアデータを使用する場合、いくつかの可能性があります。

まず、何もせずにデータモデルを更新するだけで、既存のインストールに更新が適用されると、CoreDataデータにアクセスしようとするとアプリケーションがクラッシュします。これは、期待しているモデルとデータベースのモデルが異なるためです。

第2に、コアデータストアを手動で削除して新しいデータストアを設定することで回避できます。これはまたすべてのデータを取り除くので、良い解決策にはならないでしょう。

第3に、CoreDataモデルのバージョン番号を更新できます。データモデルを変更するだけでなく、既存のモデルから新しいバージョンのデータモデルを作成できます。

データモデルとデータが一致しないことがアプリによって検出されると(上記の最初のバージョンと同様)、古いバージョンから新しいバージョンにデータが移行されます。時にはこれが自動的に可能ですが、それに沿って手助けするためにあなたからいくつかの追加コードが必要な場合があります。

このサイトは、マイグレーションがどのように機能するかになり...

関連する問題