从 Swift 中的 UserDefaults 读取存储数组时出现问题 3
Issue with reading stored array from UserDefaults in Swift 3
我正在尝试将 Int
添加到一个空的 Array
中,然后用 UserDefaults
存储它的数据,然后读取它
,这是我正在做的事情:
//create an empty array
var intArray = [Int]()
func addToBookMark(Number:Int) {
//Add object to array and save it
intArray.append(Number)
UserDefaults.standard.set(intArray, forKey: "bookmark")
UserDefaults.standard.synchronize()
//Read it
let array = UserDefaults.standard.array(forKey: "bookmark") as? [Int] ?? [Int]()
print(array.description)
}
//Calling the method :
addToBookMark(Number: 30)
问题是编译器给我一个空数组:[]
我的问题是什么?
你的代码很完美,是模拟器的问题。所以最好重新启动你的 Mac.
WWDC Seed: Running multiple iOS simulators can cause NSUserDefaults to
not work
Running an iOS 8 or 9 simulator followed by an iOS 10 simulator will
cause NSUserDefaults to stop working in the simulator. This can be
worked around by rebooting the host Mac.
在 Playground 的情况下,有一个 radar 认为它在它上面不起作用,因为 playground 无法访问沙箱。
我正在尝试将 Int
添加到一个空的 Array
中,然后用 UserDefaults
存储它的数据,然后读取它
,这是我正在做的事情:
//create an empty array
var intArray = [Int]()
func addToBookMark(Number:Int) {
//Add object to array and save it
intArray.append(Number)
UserDefaults.standard.set(intArray, forKey: "bookmark")
UserDefaults.standard.synchronize()
//Read it
let array = UserDefaults.standard.array(forKey: "bookmark") as? [Int] ?? [Int]()
print(array.description)
}
//Calling the method :
addToBookMark(Number: 30)
问题是编译器给我一个空数组:[]
我的问题是什么?
你的代码很完美,是模拟器的问题。所以最好重新启动你的 Mac.
WWDC Seed: Running multiple iOS simulators can cause NSUserDefaults to not work
Running an iOS 8 or 9 simulator followed by an iOS 10 simulator will cause NSUserDefaults to stop working in the simulator. This can be worked around by rebooting the host Mac.
在 Playground 的情况下,有一个 radar 认为它在它上面不起作用,因为 playground 无法访问沙箱。