我一直通过第一个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")
答案 0 :(得分:-2)
对于遇到相同问题的任何人,我所要做的就是将对象类型强制为String,并将其等于索引0以正确附加。
var ACC = ["123456", "987654", "908761"]
NSUserDefaults.standardUserDefaults().setObject(ACC, forKey: "Key")
NSUserDefaults.standardUserDefaults().objectForKey("Key")![0] as? [String]