0

私のアプリは現在 NSCoding を使用して永続的なデータを保存していますが、Core Data に切り替えて iCloud との統合を利用したいと考えています。問題は、アプリが現在 App Store で公開されていることです。変更を加えると、現在のユーザーのローカル ストアのデータが失われるのではないかと心配しています。

理論的には、次のことができるはずです。

  1. NSCoding データの存在をテストする
  2. データを Core Data 形式に変換する
  3. 今後のすべての「保存」に Core Data を使用する

...しかし、変換に関するドキュメントは見つかりませんでした。

何か案は?それとも私はどこかで完全にずれていますか?

ありがとう

4

1 に答える 1

1

CoreDataはいくつかの優れた自動移行を行いますが、それはさまざまなCoreDataストアからのものです。あなたの場合、あなたはあなた自身の変換コードを書かなければならないでしょう。

「古い」クラスを残し、「古い」ストアがある場合はアーカイブを解除します。次に、ストア内のオブジェクトをループして、同等のCoreDataを作成します。CoreDataを保存して閉じ、チェックとしてリロードして、すべてが同一であることを確認します。次に、古いストレージファイルを削除します。

唯一の欠点は、古いコードを保持する必要があることです(少なくとも、古いオブジェクト形式をアーカイブ解除するのに十分です)。

于 2012-04-17T01:07:01.307 に答える