私はここ数か月でコアデータに恋をし、それを使用してユーザー設定を含むデータをアプリに保存しました。うまく機能しますが、将来のアップデートで問題が発生するのではないかと心配しています。
アプリに設定を保存する 3 つの方法を知っています - 1. コア データ。2. NSUserDefaults。3. 組み込みの設定コンポーネントを使用します。
このアプローチの長所と短所を理解するのが大好きです。
ありがとうシャニ
私はここ数か月でコアデータに恋をし、それを使用してユーザー設定を含むデータをアプリに保存しました。うまく機能しますが、将来のアップデートで問題が発生するのではないかと心配しています。
アプリに設定を保存する 3 つの方法を知っています - 1. コア データ。2. NSUserDefaults。3. 組み込みの設定コンポーネントを使用します。
このアプローチの長所と短所を理解するのが大好きです。
ありがとうシャニ
編集注:以前のリンク、
アプリケーション設定の実装、 は壊れてます。この返信の残りの部分は引き続き適用されます。ただし、 iCloudに似た (ただし別の) 方法でデータを保存することもできますNSUserDefaults
。
Apple 独自のガイドを参照できます:環境設定と設定について
まず、設定は好きなように保存できます。これは単なるユーザー データです。NSUserDefaults と Core Data のどちらを選択するかは API のどちらかであり、前者はユーザー設定を処理するために特別に設計されています。ただし、絶対に必要な場合は(技術的には) INI ファイルを使用できます (ただし、使用しないでください!)。したがって、それを行うには3つ以上の方法があります。
次に、NSUserDefaults と「組み込み設定コンポーネント」はまったく同じものです。設定アプリを使用すると、その API を使用してアプリでアクセスする NSUserDefaults に設定が保存されます。
組み込みの設定アプリを使用したくない理由は次のとおりです。ユーザーがこれらの設定を変更するのは面倒です。ユーザーが頻繁に変更したい設定がある場合は、アプリ内でそれを行うことができます (音楽のオン/オフの切り替え、プレーヤー名の変更など)。また、独自のアプリを完全に制御できるため、Apple が Settings.app で提供するものよりも柔軟な GUI を使用できます。
しかし、それは実際には GUI の問題であり、設定がどのように保存されるかではありません。
コア データまたは NSUserDefaults の使用に関しては...まあ、私が言ったように、1 つはユーザー設定用に特別に設計されており、もう 1 つは行ベースのユーザー データ用に設計されています。NSUserDefaults を使用すると、デフォルト設定を使用でき、新しい設定を簡単に追加でき、組み込みの設定システムをサポートします。これも非常に単純です。プロパティ リストをロードするだけです。一方、Core Data には、永続ストア全体と管理オブジェクト コンテキスト スタックが必要です。
要約すると、設定には NSUserDefaults を使用し、設定を変更する必要がある頻度と特定のニーズに基づいて、組み込みの設定アプリと独自のコントロール パネルのいずれかを選択します。