0

我从最近发布的论坛中复制了这些帖子,但没有得到回复。

我有我的代码所有设置的基础,它是一个带有导航控制器的钻取表,它故意将数据从具有一些空值的 plist 加载到 nsmutabledictionary 中。根据命令,应用程序然后下载信息,然后在 NSMutableArray 中设置 setValue。问题是这个 NSMutableArray 比 plist 的根低 3 级。我正在寻找一种方法来替换 plist 中加载并保存在 appdelegate 中的数组。我该怎么做?非常感谢您的帮助。

所以这可能没有多大意义。在 AppDelegate 中,它将 plist 文件加载到 NSMutableDictionary 中。plist是这样的:


>标题(字符串)
>行(数组)
>>第1项(字典)
>>>标题(字符串)
>>>ID(字符串)
>>>项列表(数组)
>>>>第1项(字典)
>> >>>Title(String) >>>>
ID(String)
>>>>>Value(String)-----------下载的空值
>>>>Item 2(Dictionary)
>>>>第 3 项(字典)
>>>>第 4 项(字典)
>>第 2 项(数组)
>>第 3 项(数组)
>>第 4 项(数组)

Rows 数组被发送到 RootViewController。当从 TableView 中选择其中一项并创建新实例时,将表数据源设置为该选定项的 ItemList。当用户按下按钮时,它会下载值并使用 [setValue: forKey:@"Value"] 将值设置在数组中。这是它迷路的地方。我现在需要将此 ItemList 数组设置回主 Root 字典,然后将 Root 字典发送回 AppDelegate,以便可以调用 applicationWillTerminate [self.data writeToFile:] 并且不需要下载下载的信息下次。

4

2 回答 2

0

我相信我可能不得不使用 forKeyPath

于 2009-07-30T11:59:03.967 回答
0

我不完全确定我了解您的问题是什么。将新值填充到数组中后,只需在字典上使用 setObject:forKey: 即可替换旧数组。

如果您在获取对应用程序委托的引用时遇到问题,可以使用 [[UIApplication sharedApplication] 委托]

如果问题是您的字典和数组是嵌套的,因此您需要更改多个对象来设置值,请考虑使用 mutableCopy 在加载时从 plist 生成可变数组和字典。或者,也许考虑使用复杂的数据表示,而不是读写 plist 格式。

于 2009-07-29T13:24:24.640 回答