iOS - 将项目添加到 plist

iOS - Adding items to plist

我正在从 'NSMutableDictionary' 写一个 plist。没问题。

但是当我想添加到文件中时,新条目会覆盖第一个条目。

我想要的是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<names>
<name1>
    <key>
        firstname
    </key>
    <value>
        mememememe
    </value>
    <key>
        lastname
    </key>
    <value>
        mememememe
    </value>

</name1>
<name2>
    <key>
        firstname
    </key>
    <value>
        mememememe
    </value>
    <key>
        lastname
    </key>
    <value>
        mememememe
    </value>

    </name2>
</names>
Here's my code so far:



    NSString *filename = [documents stringByAppendingPathComponent:@"faves.plist"];
    NSMutableDictionary *loadedMiscDictionary = [NSMutableDictionary dictionaryWithContentsOfFile:filename];

 NSArray *directories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documents = [directories firstObject];

    NSMutableDictionary *tempDict = [[NSMutableDictionary alloc] init];
    [tempDict setValue:firstNameString forKey:@"firstname"];
    [tempDict setValue:secondNameString forKey:@"secondName"];

  [loadedMiscDictionary addEntriesFromDictionary:tempDict];
    [loadedMiscDictionary writeToFile:filename atomically:YES];

请让我知道我做错了什么。 TIA

更新

我更改了上面的代码片段..

您的代码覆盖了 plist 的旧条目。您没有在字典中获取 plist 文件条目。只需创建一个新词典添加一些新条目并覆盖旧文件。

  • 获取 plist 文件数据
  • 将其存储在 NSMutableDictionary 或 NSMutableArray 中
  • 在该字典中添加新条目。或数组
  • 最后获取当前文件位置并存储新创建的字典。或其中包含新旧条目的数组。

希望对你有所帮助

您应该使用右键单击 + 为顶级类别添加行,对于子类别使用 + 号在 plist 文件中添加新行