Swift UserDefaults返回nil

时间:2017-08-21 08:54:11

标签: arrays swift uitableview nsuserdefaults

努力学习做一个todolist;我有两个viewcontrollers,一个用于存储,一个用于在表视图中显示。我的桌子返回零;我哪里错了?

存储视图:

    var toDoStorage = UserDefaults.standard.object(forKey: "toDo")
    var toDoList = [String] ()

@IBAction func saveButton(_ sender: Any) {
    if (toDoStorage as? [String]) != nil {
        toDoList.append(itemLabel.text!)
    } else {
        toDoList = [itemLabel.text!]
    }
    UserDefaults.standard.set(toDoList, forKey: "todo")
    itemLabel.text = ""
}

显示视图:

    var toDo = [UserDefaults.standard.object(forKey: "toDo")]

public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
    return toDo.count
}

public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: "IDCell")
    cell.textLabel?.text = String(describing: toDo[indexPath.row])
    return cell
}

2 个答案:

答案 0 :(得分:1)

只需使用此存储字符串数组

var toDo = UserDefaults.standard.stringArray(forKey: "todo") ?? [String]()

答案 1 :(得分:0)

确保您的钥匙匹配.. 你的钥匙上写了一个错字。" todo" !=" toDo"