【发布时间】:2017-04-05 10:25:49
【问题描述】:
首先我将保存在用户默认值中的现有数组导入 key - array1
var savedArray = UserDefaults.standard.array(forKey: "array1") as! [String]
var ns = UserDefaults.standard
然后
let savedValue = name
然后
savedArray.append(savedValue!)
然后我把它保存在key-array1中
UserDefaults.standard.set(savedArray, forKey: "array1")
然后同步
ns.synchronize()
但是,如果我进入另一个视图控制器并执行此操作
let alreadyShownarray = UserDefaults.standard.object(forKey: "array1") as! [String]
print (alreadyShownarray)
然后我得到相同的数组,没有附加 savedValue!
【问题讨论】:
-
UserDefaults.standard.set(array2, forKey: "array1")您正在保存array2,但从未提及。你是说savedArray:UserDefaults.standard.set(savedArray, forKey: "array1")?只是问题上的错误? -
ns从何而来?
-
@RaduDiță var ns = UserDefaults.standard
-
返回的数组是结构体或按值/副本传递。如果您制作了图纸的副本,在副本中添加细节不会影响原件。