0

動的な (少量の) エンティティを保存するためにコアデータを使用します。これらのエンティティには「表示」と「プッシュ」のプロパティがあり、エンティティごとにサーバーと同期します。

ここで、InApp-Settings を追加して、コア データ エンティティ内でこれら 2 つの設定を変更できるようにします。

動作と外観は Settings.app のようにする必要があるため、この場合は InAppSettingsKit-Project を使用したいと考えています。

私が読んだように、このライブラリを使用すると、カスタム SettingsStore を実装してコア データ内の値を保存できますが、コア データからもエンティティと設定を読み取る必要があります。私の意見では、独自のサブクラス化された IASKSettingsReader を定義して使用することはできません。

次の問題は、トップレベルで plist を使用してメイン設定を表示し、次に設定のサブレベルで自分のストアを表示したいということです。

例:

-> Display Settings (From plist)
--> List of entities with my own reader and store to show toggles
-> Push Settings (From plist)
--> List of entities with my own reader and store to show toggles 
-> Version (From plist)
-> About (From plist)

設定全体をゼロから作成せずにこの目標を達成することは可能ですか (これは非常に苦痛で柔軟性がありません)。

事前に正しい方向に向けてくれてありがとう!

- - - 編集 - - -

考えられる解決策は、アプリの起動時に InAppSettingsKit に必要な形式でカスタム plist を保存し、サブメニューでこの子ペインのソースとしてそれらを読み取り、カスタム SettingsStore を使用して設定を plist に保存し、同期メソッドでデータをコア データに戻します。

このアプローチについてどう思いますか?

4

2 に答える 2

1

あなたが説明したアプローチは合理的に聞こえます。ただし、ロジックを微調整して plist のパスを設定する必要があります ( -locateSettingsFile:)。IASKSettingsReaderフィールド定義を動的に設定するための代わりを書くことも可能であるべきです。または、プロパティを直接変更することもできますIASKSettingsReader.dataSource(未テスト、単なるアイデア)。

于 2011-11-17T11:37:59.223 に答える
0

質問の編集で説明したアプローチを実装しました。

アプローチ全体は次のように機能します。

  1. コア データのデータをサーバーのコンテンツで更新する
  2. InAppSettings.bundle 内の InAppSettingsKit のような plist-Files で 2 つの plist ファイルを生成します
  3. SettingsStoreCoreData SettingsStore を実装しました。init でコア データの値を使用してディクショナリを作成し、同期が呼び出されたときにそれらをコア データに保存します。

Ortwin Gentz が述べたように、独自の IASKSettingsReader を作成することが可能です。しかし、私のアプローチでは作業が少なくて済み、IASKSettingsKit 内のさまざまなソース タイプを扱う必要はないと思います。

于 2011-11-17T14:01:10.977 に答える