Ios 保存CLLocation错误:将突变方法发送到不可变对象
我已经阅读了其他相关问题,但我被卡住了 我正在尝试将最后一个已知位置保存到plist中,以供以后使用 以下是我收到的错误消息: *由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“-[\uu NSCFDictionary setObject:forKey:::正在将方法发送到不可变对象” 这是我的密码:Ios 保存CLLocation错误:将突变方法发送到不可变对象,ios,swift,plist,cllocation,nskeyedarchiver,Ios,Swift,Plist,Cllocation,Nskeyedarchiver,我已经阅读了其他相关问题,但我被卡住了 我正在尝试将最后一个已知位置保存到plist中,以供以后使用 以下是我收到的错误消息: *由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“-[\uu NSCFDictionary setObject:forKey:::正在将方法发送到不可变对象” 这是我的密码: var plist = NSDictionary(contentsOfFile: NSBundle.mainBundle().pathF
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
您不能在NSDictionary
上调用setValue
,因为它是一种变异方法,NSDictionary
是不可变的
var plist = NSDictionary(contentsOfFile: NSBundle.mainBundle().pathForResource("Config", ofType: "plist"))
将此中的NSDictionary
更改为NSMutableDictionary
var path = NSBundle.mainBundle().pathForResource("Config", ofType: "plist")
var plist: NSMutableDictionary = NSDictionary(contentsOfFile: path).mutableCopy() as NSMutableDictionary