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 文件中添加新行
我正在从 '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 文件中添加新行