1

CoreDataで足を濡らしています。カードゲームを書いていますが、ゲームの統計を保存および取得できます。また、各移動後のゲームの状態を保存して、アプリケーションが終了したときに進行中のゲームをアプリケーションが再開できるようにし、自作の取り消しシステムを容易にします。

残念ながら、ゲームを長くプレイするほど、感じが遅くなります。これは、移動するたびに52枚のカードとその特定の状態をSqlLiteに保存しているためだと思います。DBに詰め込むデータが増えるほど、これは遅くなるのではないかと思います。

このため、CoreDataに組み込まれているUNDO管理を使用してみる予定です。(最初の実装で手遅れになるまで、これがあったことを覚えていませんでした。)私の質問は、アプリがゲームの途中で閉じられた場合、同じ状態の元に戻る管理で再起動できるかどうかです。

IE:ユーザーがこのゲームで10回の動きをしたと想像してください。彼らは10回元に戻すことができるでしょう。アプリを終了して完全に閉じてからアプリを再起動した場合、ユーザーが10回の元に戻す手順を実行できる状態にCore Dataを戻すことはできますか?

少し調べてみると、NSCodingを使用して、アプリを閉じたときにNSManagedObjectContextをシリアル化されたファイルに永続化し、アプリを再起動したときにこのファイルからその状態を復元できる可能性があります。

私は正しい道を進んでいますか?助言がありますか?

ありがとう!

4

1 に答える 1

0

いいえUndoManagerは永続的ではありません。はい、状態を保存するためにNSCodingまたはPlistを使用できます。

このトピックの詳細については、 http://www.cimgf.com/2011/10/11/core-data-and-the-undo-manager/を参照してください。

于 2012-11-12T19:15:38.063 に答える