将字典写入文件

Posted

技术标签:

【中文标题】将字典写入文件【英文标题】:Writing a dictionary to a file 【发布时间】:2015-11-24 16:05:30 【问题描述】:

从 plist 文件中读取 [String:String] 类型的字典。然后我添加一个新的键值对 - 在进入后台模式后,我使用以下代码将其写入相同的路径:

func saveToFile () 
    let mo_tmp: NSDictionary = ortdict as NSDictionary
    mo_tmp.writeToFile(fileat, atomically: true)
    print("mo_tmp:", mo_tmp)
    print("fileat:", fileat)

重新启动程序时,会再次读入相同的文件。但是,我添加到字典中的条目(并显示在上面的打印输出中)不存在。在模拟器或真正的 iPhone 5 上运行测试时会发生这种情况。

【问题讨论】:

【参考方案1】:

检查 writeToFile() 的返回值是否为真。如果不是,则字典无法写入文件,因为并非所有包含的对象都是属性列表对象。

见https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/#//apple_ref/occ/instm/NSDictionary/writeToFile:atomically:

【讨论】:

writeToFile的结果确实是假的,但是不知什么原因:对象mo1写出来为: mo1: GPS = "47.2409, 8.7288, 423.0"; "瑞士少女峰" = "46.5481, 7.9839, 3580.0"; "PMOD/WRC 达沃斯" = "46.81350, 9.84455, 1587.21"; "St\U00e4fa, Chapfwiesenstrasse 14" = "47.2409, 8.7288, 423.0"; "St\U00e4fa, Chapfwiesenstrasse 25" = "47.2411, 8.7283, 422.9"; “山顶营地” = “72.58, -38.46, 3250.01”; "ach 是" = "47.2409, 8.7288, 423.0"; 这是一本字典——不是吗?

以上是关于将字典写入文件的主要内容,如果未能解决你的问题,请参考以下文章

将字典写入文本文件?

将列表字典写入 CSV 文件

将字典写入文本文件

将数据框字典写入 excel 文件会产生错误

以特定格式将“字典中的字典”写入 .csv 文件

尝试将字典写入 CSV 文件时,Str 属性没有键