Swift-XCode 7-userDefaults在保存时弄乱了数组

时间:2018-07-27 07:36:28

标签: swift xcode7 nsuserdefaults swiftyuserdefaults

我一直通过第一个View Controller声明的全局变量在我的应用程序中携带值。每当重新打开应用程序时,它的值就会更新。

当用户处于同一会话中时,该数组会适当地追加,但是当我通过userDefaults保存它时,该数组上的元素位置会混乱。你能找出原因吗?我似乎找不到答案。

同一会话上的数组:[0,123456,789101,456789]

从userDefaults加载后的数组:[(0,123456,789101,456789),222345]它包装了在圆括号上完成的所有操作。

当我尝试保存整数向量时,也会发生同样的情况。有什么办法可以将变量保存在userDefaults上以获取以下信息:

保存前的向量:[1、2、3]

保存后的向量:[1、2、3]

很抱歉,我没有发布完整的代码,我目前正在VM上进行编码,因此很难复制。我认为解释这个问题会更好。这就是我一直保存和加载它的方式:

var ACC = ["123456", "987654", "908761"]
NSUserDefaults.standardUserDefaults().setObject(ACC, forKey: "Key")
NSUserDefaults.standardUserDefaults().objectForKey("Key")

1 个答案:

答案 0 :(得分:-2)

对于遇到相同问题的任何人,我所要做的就是将对象类型强制为String,并将其等于索引0以正确附加。

var ACC = ["123456", "987654", "908761"]
NSUserDefaults.standardUserDefaults().setObject(ACC, forKey: "Key")
NSUserDefaults.standardUserDefaults().objectForKey("Key")![0] as? [String]