Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 保存CLLocation错误:将突变方法发送到不可变对象_Ios_Swift_Plist_Cllocation_Nskeyedarchiver - Fatal编程技术网

Ios 保存CLLocation错误:将突变方法发送到不可变对象

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

我已经阅读了其他相关问题,但我被卡住了

我正在尝试将最后一个已知位置保存到plist中,以供以后使用

以下是我收到的错误消息:

*由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“-[\uu NSCFDictionary setObject:forKey:::正在将方法发送到不可变对象”

这是我的密码:

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