iOS - 将项目添加到 plist
Posted
技术标签:
【中文标题】iOS - 将项目添加到 plist【英文标题】:iOS - Adding items to plist 【发布时间】:2015-07-13 11:13:03 【问题描述】:我正在从“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
更新
我在上面更改了我的代码 sn-p..
【问题讨论】:
你用过我的回答吗 不,答案还没有完成。 表示你想说的我没有得到你的问题。是否需要一些代码或其他东西 【参考方案1】:您的代码会覆盖 plist 的旧条目。您没有在字典中获取 plist 文件条目。只需创建一个新字典,添加一些新条目并覆盖旧文件。
获取plist文件数据 将其存储在 NSMutableDictionary 或 NSMutableArray 中 在该字典中添加新条目。或数组 最后获取当前文件位置并存储新创建的字典。或包含新旧条目的数组。希望对你有帮助
【讨论】:
【参考方案2】:您应该使用右键单击 + 添加行为***类别和子类别使用 + 号在 plist 文件中添加新的行
【讨论】:
感谢您的回答,但我需要这是一个动态的 plist。 如果我做对了,如果您的密钥相同,那么它将覆盖。您需要为每个对象设置不同的键。 进一步改进您的代码。 1. 第一次因为可能没有数据/plist 文件,请检查字典计数 ([loadedMiscDictionary count] == 0) 如果为真,然后将您的应用字典数据直接添加到文件中。 2.如果为假则使用 [loadedMiscDictionary addEntriesFromDictionary:tempDict];添加新条目和 [loadedMiscDictionary setDictionary:tempDict];用于更新旧一次。 欢迎。希望你得到解决方案以上是关于iOS - 将项目添加到 plist的主要内容,如果未能解决你的问题,请参考以下文章
为啥要将 entitlements.plist 添加到我的项目中?
将项目添加到 .plist 并在自定义 UITableViewCell 中显示