以编程方式将子键添加到plist

时间:2010-02-08 20:05:37

标签: iphone objective-c plist

任何人都可以帮助我将孩子添加到plist中吗?

我想我想记录plist中的行索引,然后说明要写入键的索引行。 我不知道怎么说密钥是字符串,字典还是数组。

以下是关于向root添加密钥的另一个问题的代码。

 NSString *path = @"path/to/some/file";
 NSMutableDictionary *plist = [[NSDictionary dictionaryWithContentsOfFile:path] mutableCopy];
 [plist setObject:@"foo" forKey:@"aKey"];
 [plist writeToFile:path atomically:YES];
 [plist release];

非常感谢任何帮助:)

3 个答案:

答案 0 :(得分:2)

注意:我仍然需要帮助,但取得了进展。

以下代码将为子项添加一个plist数组条目名称“Hi”: 项目0,test1 第1项,test2

NSMutableDictionary *plist = [[NSDictionary dictionaryWithContentsOfFile:databasePath] mutableCopy];
NSMutableArray *newArray = [[[NSMutableArray alloc] init] autorelease];
newArray = [NSArray arrayWithObjects:@"test1", @"test2", nil];
[plist setObject:newArray forKey:@"Hi"];
[plist writeToFile:databasePath atomically:YES];
[plist release];

我认为制作一个字典项与数组项的工作方式相同。 我仍然不确定如何向孩子们添加entires:/

答案 1 :(得分:1)

在这里 如果您按照以下方式执行所有操作,则可以写出一个plist。 字典 - >数组 - >串 字典 - >字典 - >字典 - >数组 - >串 等...

这是创建“行”字典的代码,其中包含一个名为Item 0和Item 1的名为“test 1 and test 2”的字符串的“Hi”数组。

NSMutableDictionary *plist = [[NSDictionary dictionaryWithContentsOfFile:databasePath] mutableCopy];
NSMutableArray *newArray = [[[NSMutableArray alloc] init] autorelease];
NSMutableDictionary *newDictionary = [[[NSMutableDictionary alloc] init] autorelease];
newArray = [NSArray arrayWithObjects:@"test1", @"test2", nil];
newDictionary = [NSDictionary dictionaryWithObject:newArray forKey:@"Hi"];
[plist setObject:newDictionary forKey:@"Row"];
[plist writeToFile:databasePath atomically:YES];
[plist release];

如果您尝试编写已存在1的项目,则会崩溃。任何人都知道我如何给字符串键(即项目0,项目1等...)一个名字?

答案 2 :(得分:1)

我相信字符串键名不能改变 只有这样才能给出钥匙和物品 使用NSDictionary

[NSArray arrayWithObjects:dictionary1, dictionary2];

希望这会有所帮助