从 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 无法访问沙箱。