我已经阅读了其他相关问题,但我卡住了。
我正在尝试将最后一个已知位置保存到 plist 中供以后使用。
这是我收到的错误消息:
* Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object'
这是我的代码:
var plist = NSDictionary(contentsOfFile: NSBundle.mainBundle().pathForResource("Config", ofType: "plist"))
var dataToStore = NSKeyedArchiver.archivedDataWithRootObject(lastKnownLocation)
plist.setValue(dataToStore, forKey: "location")
“lastKnownLocation”变量是一个 CLLocation。 plist 中的“位置”键是“数据”类型。有人可以协助并让我知道如何做到这一点(或者如果有更好的方法,他们是如何做到的)?谢谢
请您参考如下方法:
您需要将 NSDictionary 更改为 NSMutableDictionary。
var path = NSBundle.mainBundle().pathForResource("Config", ofType: "plist")
var plist: NSMutableDictionary = NSDictionary(contentsOfFile: path).mutableCopy() as NSMutableDictionary
