質問
もう一つの初心者の質問:Obj-C で書かれた Cocoa アプリケーションにデータを保存する最良の方法は何ですか?たとえば、事前に作成された (およびユーザーが作成した) 質問でユーザーにクイズを出題する、一種の「クイズ」を作成したい場合はどうすればよいでしょうか?これらの質問と回答はどのように保存すればよいでしょうか?コアデータ?
ありがとう!
解決
もちろんです コアデータ!
それはすべてを処理します..ここを見てください: http://developer.apple.com/macosx/coredata.html
これは、以下を処理できる完全な API です。
- データベースとランタイムオブジェクト間のORM
- 持続性
- 自動構築ツール (ER エディターなど)
- 箱から出してすぐに使える状態なので、ほとんど何も実装する必要はありません。オブジェクト コントローラーにクエリを実行するだけで、すでにデータにアクセスできるようになります。
おそらくこの解決策はあなたの問題に対して大きすぎるかもしれませんが、簡単なケースでその使用方法を学ぶことができ、将来役に立つでしょう。
他のヒント
@Jack が示したように、Core Data は確かに優れたオプションです。他にもいくつかのオプションがあります。
NSCoding
- モデル オブジェクトを NSCoding プロトコルに準拠させることができます (java.io.Serializable
)、これはファイルに直接書き込むことができることを意味します。これは、永続化する大量のデータがなく、永続化しているデータの構造が比較的単純な場合に最適なオプションであることがわかりました。SQLite - データが非常にリレーショナルである場合は、データベース (おそらく SQLite) を直接使用することを検討することをお勧めします。Core Data はオブジェクト ストアであり、オブジェクト間の関係などを処理しますが、次のような本当に役立つことはできません。
INNER/LEFT/OUTER/CROSS/NATURAL JOIN
または他の複数テーブル演算子。NSUserDefaults
- データが非常に小さく、本質的に単なるキーと値のペアである場合は、おそらくすべてをNSUserDefaults
オブジェクトを作成すると、それが設定ファイルに永続化されます。ただし、データが単純であっても、NSUserDefaults
たくさん持っている場合には最良の選択肢ではないかもしれません。