0

大量のネストされた文字列を保存し、単純な形式 (「my.data.object.path」など) を使用してすべてのデータにアクセスする必要があります。

たとえば、次の構造があるとします。

- object1
- object2
-- nested1
-- nested2
--- nestednested1

たとえば、object2.nested2.nestednested1存在するかどうかを確認する必要があります。object2.nested2場合によっては、存在するかどうかも確認する必要がobject2あります。

ネストされた NSMutableDictionary オブジェクトを使用するのは効率的ですか? それとも、より効率的なデータ ストレージ モデルを最初から作成する必要がありますか? おそらく、この問題に対するすぐに使用できるサードパーティのソリューションが提案できるでしょう。


my.variable.pathまた、すべてのパスを単一のに格納することも考えていたNSMutableDictionaryので、単純に変数を設定[storage setObject:object forKey:@"my.variable.path"]し、着信パスをドットで分割してパスの最短チャンクを見つけようとするカスタム メソッドを定義することで変数を抽出できます。

4

2 に答える 2

1

辞書はハッシュマップされており、配列よりも高速です。

そして、それがどのレベルにネストされているかによってアクセスできます[dict valueForKeyPath.@"key1.key2...."]

3レベルまでは問題ありませんが、それを超える場合は、この問題を解決するためにクラス構造を設計することを考えることができます。

于 2013-01-16T17:35:45.040 に答える
1

これには Core Data の使用を真剣に検討します。

  • 大量のデータでうまく機能します。
  • 必要に応じてロードするため、非常に大量のデータであっても、メモリ効率が非常に高くなります。
  • 例とまったく同じようにアクセスできます。
  • 成熟した技術が組み込まれています。

それをカバーするメインの Apple ドキュメントはCore Data Programming Guideです。
また、iOS 用の Core Data Tutorialもあります。これは少し短く、すぐに始められます。

また、Apple 以外のチュートリアルも Web 上に多数あります。私のお気に入りの 1 つは、Ran Wenderlich によるものです: Core Data on iOS 5 Tutorial: Getting Started . 彼は、その記事とここからリンクされた Core Data に関する他のチュートリアルも持っています。

于 2013-01-16T17:46:08.637 に答える