如何将 NSMutableDictionary 写入 Plist
Posted
技术标签:
【中文标题】如何将 NSMutableDictionary 写入 Plist【英文标题】:how to write NSMutableDictionary into Plist 【发布时间】:2010-10-21 06:07:56 【问题描述】:任何人都可以帮助我解决如何将 NSMutableDictionary 写入 plist....
提前谢谢..
【问题讨论】:
【参考方案1】:确保您正在写入的 pList 文件位于可以编辑它的合法位置,例如应用程序沙箱中的文档。 然后找到该位置的路径(如果有现有的 pList 文件,它将覆盖),并使用:
[myDictionary writeToFile:path atomically:YES];
写下你在这个过程中走了多远,也许还有一些代码/错误消息...
【讨论】:
这是我的代码:NSMutableDictionary *nameDetails=[[NSMutableDictionary alloc] init]; [nameDetails setValue:username forKey:USERNAME_KEY]; [nameDetails setValue:password forKey:PASSWORD_KEY]; NSString *loginDetails = [[NSBundle mainBundle] pathForResource:@"Login" ofType:@"plist"]; [nameDetails writeToFile:loginDetails atomically:YES]; savedStock = [NSMutableDictionary dictionaryWithContentsOfFile:loginDetails];【参考方案2】:[yourDict writeToFile:filePath atomically:YES];
请注意,字典必须包含 plist 对象(NSData
、NSDate
、NSNumber
、NSString
、NSArray
或 NSDictionary
的实例)。并且字典键必须是NSString
对象
【讨论】:
这是我的代码 [nameDetails writeToFile:loginDetails atomically:YES]; 什么是 loginDetails 路径?您确定您的字典符合其内容类型的条件吗?【参考方案3】:问题是您的应用程序正在尝试将 plist 写入其自己的包中。您的 plist 应存储在用户库中。但是,如果您要存储用户的服务凭据,那么您真的应该使用 Mac OS X 钥匙串服务来存储该信息。
【讨论】:
【参考方案4】:NSMutableDictionary *nameDetails=[[NSMutableDictionary alloc] init];
[nameDetails setValue:username forKey:USERNAME_KEY];
[nameDetails setValue:password forKey:PASSWORD_KEY];
NSString *loginDetails = [[NSBundle mainBundle] pathForResource:@"Login" ofType:@"plist"];
[nameDetails writeToFile:loginDetails atomically:YES];
savedStock = [NSMutableDictionary dictionaryWithContentsOfFile:loginDetails];
【讨论】:
【参考方案5】:NSString *pathToPlist = [[NSBundle mainBundle] bundlePath];
pathToPlist = [pathToPlist stringByDeletingLastPathComponent];
pathToPlist = [pathToPlist stringByAppendingPathComponent:@"Documents"];
NSLog(@"%@", pathToPlist; //*
pathToPlist = [pathToPlist stringByAppendingPathComponent:@"Login.plist"];
NSDictionary *nameDetails = @@"name": @"Albert", @"password": @"emc2";
[nameDetails writeToFile:pathToPlist atomically:YES];
我们正在记录控制台的路径,以便能够在 Finder 中找到它。将路径从控制台复制到剪贴板。然后在 Finder 的 Go 菜单中选择“Go To Folder...”。将路径粘贴到对话框中,将打开 plist 所在的文件夹。然后您可以检查它并确保一切正常。
【讨论】:
以上是关于如何将 NSMutableDictionary 写入 Plist的主要内容,如果未能解决你的问题,请参考以下文章
如何将字段添加到 NSMutableDictionary Swift [重复]
如何将 NSMutableDictionary setObject 值分配为 indexPath.section 值?
如何使用键将对象添加到 NSMutableDictionary?
如何在 NSMutableDictionary 中保留部分分数