0

コア データの永続ストアに「マジック ナンバー」データを追加することは可能ですか?

カスタム バイナリ ファイル形式を使用する古いアプリケーションがあります。各ファイルは、5 バイトのマジック ナンバー (たとえば0A 0B 0C 0D 0E) と 1 バイトの形式のバージョン識別子で始まります。その後、実際のデータが続きます。アプリケーションの既存のバージョンでは、ユーザーがファイルを開こうとすると、次のチェックが行われます。

  • ファイルの最初の 5 バイトがマジック ナンバーと一致しない場合、ユーザーは次のようなメッセージを受け取ります。ファイル拡張子が間違っている可能性があります。」</li>
  • マジック ナンバーは一致するが、バージョン ID がアプリケーションのバージョンが読み取ることができるものよりも大きい場合、ユーザーは「このアプリケーションの新しいバージョンでファイルが作成されました。新しいバージョンにアップグレードする必要があります。」</li>

同じファイル拡張子を使用し、古いバージョンのアプリケーションとの適切な互換性を維持しながら、新しいバージョンのアプリケーションのストレージにコア データを活用したいと考えています。新しいバージョンは、他のメッセージではなく、アップグレードする必要があるというメッセージを受け取る必要があります。これは可能ですか?そしてどうやって?

4

1 に答える 1

0

にはNSManagedObjectModelversionIdentifiers「含まれる」モデル バージョンを識別する一連の開発者定義文字列を返す があります。(新しいモデル バージョンに移行する場合、古いモデルはモデル ファイル/ディレクトリに含まれることに注意してください。)

実際、ドキュメントには次のように記載されています

この値は、マージされたモデルを作成するために結合されたモデルを特定するのに役立つデバッグ ヒントとして使用することを目的としています。

ただし、このプロパティの内容を目的に合わせて使用​​することはできます。

「マジックナンバー」に関しては、ユーザーの同意なしにデータストア形式を無効にしようとしているようです。悪いアイデア。私の意見では、別のデザイン パターンを選択する必要があります。

于 2012-12-30T20:09:17.033 に答える