2009-07-29 7 views
0

最近投稿したフォーラムからこれらの投稿をコピーしましたが、返信がありませんでした。ダウンロードしたコンテンツからPListに配列を保存してiPhoneのテーブルビューに保存

私は自分のコードをすべてセットアップするためのベースを持っています。これは目的のためにいくつかの空の値を持つplistからnsmutabledictionaryにデータをロードするナビゲーションコントローラ付きのドリルダウンテーブルです。コマンドを実行すると、アプリケーションは情報をダウンロードし、NSMutableArrayにsetValueを設定します。問題は、このNSMutableArrayがplistのルートから3レベル下にあることです。私は、appdelegateにロードされて保存されているplistの配列を置き換える方法を探しています。どうすればいい?ヘルプは非常に感謝しています。

おそらくあまり意味がありませんでした。 AppDelegateでは、plistファイルをNSMutableDictionaryにロードします。

ルート
>タイトル(文字列)
>行(アレイ)
> >項目1(辞書)
> > >タイトル(文字列)
> > > ID(:のplistは、このようなものです文字列)
> > > ItemList(配列)
> > > >項目1(辞書)
> > > > >タイトル(文字列)
> > > > > ID(文字列)
> > > > >値(文字列)------- ----空の値をダウンロードしました
> > > >アイテム2(辞書)
> > > >項目3(辞書)
> > > >項目4(辞書)
> >アイテム2(アレイ)
> >項目3(アレイ)
> >項目4(配列)

Rows配列はRootVie wController。これらのアイテムの1つがTableViewから選択され、その選択されたアイテムのItemListに設定されたテーブルデータソースで新しいインスタンスが作成されたとき。ユーザーがボタンを押すと、値がダウンロードされ、[setValue:forKey:@ "Value"]を使用して値が配列に設定されます。ここでそれが失われる場所です。このItemList配列をメインのルート辞書に戻してから、そのルート辞書をAppDelegateに送り返して、applicationWillTerminate [self.data writeToFile:]を呼び出すことができ、ダウンロードした情報をダウンロードする必要はありません。次回。

答えて

0

私はあなたの問題が何であるかを十分に理解していません。配列に新しい値が設定されたら、辞書のsetObject:forKey:を使用して古い配列を置き換えるだけで済みます。

あなたがトラブルのアプリデリゲートへの参照を取得した場合は、あなたが[[のUIApplication sharedApplication]デリゲート]を使用することができます

問題はあなたの辞書や配列は、あなたがより多くの変更する必要があるようにネストされているということであれば1つのオブジェクトよりも値を設定するには、mutableCopyを使用して、ロード時にplistから可変配列と辞書を生成することを検討してください。あるいは、plist形式を読み書きするのではなく、洗練されたデータ表現を使用することを考えてみてください。

0

私はforKeyPathを使用する必要があると信じています

関連する問題