在初始运行时绕过代码

时间:2016-06-28 16:00:33

标签: swift

在我的代码中,我需要检索已保存的数据数组以填充学生历史数据。我使用以下代码行 - 这很好用。

returnedArray = UserDefaults.standard().object(forKey: "studentHistoryArray")! as! NSArray as! [[String]]

我遇到的问题是程序的初始(第一次)运行。尚未创建/保存数组,因此我需要跳过此步骤,但仅限于程序的初始运行。有没有办法只在第一次运行程序时运行这行代码?

1 个答案:

答案 0 :(得分:1)

var defaults = UserDefaults.standard()
let studentHistoryArrayKey = "studentHistoryArray"
var returnedArray = defaults.object(forKey: studentHistoryArrayKey) as? [[String]]
// I don't think that you need to use the intermediary cast to NSArray, but
// I could be wrong.

if returnedArray == nil {
    returnedArray = [[String]]()
    defaults.setObject(returnedArray, forKey: studentHistoryArrayKey)
}

// Now it's guaranteed to be non-nil, so do whatever you need to do with the array.

根据经验,如果你像在你的例子中那样自由地使用!,那么某些事情就会破裂。