我正在为Objective-C中的现有应用快速创建更新。我使用obj c旧版本中的plist文件存储数据,现在我将用户数据保存在CoreData中,因此在更新后的首次启动时,我读取plist文件并设置了词典,其中包含用户在plist文件中保存的值。 但是问题是,保存的值不在字典中(只有我直接在Xcode的plist文件中设置的值才在字典中)。
读取Data.plist代码:
if let path = Bundle.main.path(forResource: "Data", ofType: "plist"), var tempDict = NSDictionary(contentsOfFile: path) as? [String: String] {
print("tempDict = \(tempDict)")
}
打印结果:
tempDict = ["key1": "", "key2": ""]
但是plist文件中有值(找到文件且键在字典中,但没有值)。浏览应用程序的容器数据和Data.plist,存在值。
答案 0 :(得分:2)
但是问题是,保存的值不在字典中(只有我直接在Xcode的plist文件中设置的值才在字典中
这意味着您需要更改主Bundle,这当然是不允许的,因为您必须将文件复制到文档中并对其进行任何更改,然后读取您写给它的lastet值,您可能会探索复制文件的内容,而不是主捆绑包中存在的原始文件