NSUserDefaults在swift中为TableView保存String字符串

时间:2016-08-27 13:49:50

标签: ios arrays swift nsuserdefaults

您好我有一个tableview,这是我在MyItemTableViewController班级

中的代码
var itemList = [String]()

@IBAction func saveItemToList (segue: UIStoryboardSegue) {
    let AddNewItemViewController = segue.sourceViewController as! addItemTableViewController

    let name = AddNewItemViewController.itemName

    if name == "" {

    }
    else {
        itemList.append(name!)

        let indexToInsert = itemList.count == 0 ? 0 : itemList.count - 1

        let indexPath = NSIndexPath(forRow: indexToInsert, inSection: 0)

        tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)
    }

}

如何使用NSUserDefaults保存我的数组我尝试了一些方法,但它对我不起作用。

1 个答案:

答案 0 :(得分:2)

您可以像这样设置let defaults = NSUserDefaults.standardUserDefaults() defaults.setObject(itemList, forKey: "items") defaults.synchronize() 数组。

NSUserDefaults

当你需要从let defaults = NSUserDefaults.standardUserDefaults() if let items = defaults.objectForKey("items") as? [String] { print(items) } 中提取时,你可以像这样提取它

stringArrayForKey

或者您也可以使用if let items = defaults.stringArrayForKey("items") { print(items) }

NSUserDefaults

有关[String]的详细信息,请阅读此tutorial

编辑:问题是你正在尝试在Sting数组中添加if let items = defaults.stringArrayForKey("items") { self.itemList = self.itemList + items } 对象,这是不可能的,如果你想合并两个数组然后像这样写。

ceyanebepa.js:45 Uncaught ReferenceError: $ is not defined