从Swift 3中的UserDefaults读取存储数组的问题

时间:2017-05-10 07:06:41

标签: ios arrays swift xcode nsuserdefaults

我正在尝试将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)

问题是编译器给了我一个空数组:[]我的问题是什么?

1 个答案:

答案 0 :(得分:2)

您的代码是完美的,它是模拟器的问题。所以最好尝试重新启动Mac。

  

WWDC Seed:运行多个iOS模拟器可能导致NSUserDefaults   不工作

     

运行iOS 8或9模拟器,然后运行iOS 10模拟器   导致NSUserDefaults停止在模拟器中工作。这可以   通过重新启动主机Mac来解决这个问题。

如果是Playground,则会有一个radar因为它无效,因为它无法访问沙盒。