swift 中的 NSUserDefaults 用于为 TableView 保存字符串数组

NSUserDefaults in swift for saving Array of String for TableView

嗨,我有一个 tableview,这是我在 MyItemTableViewController Class

中的代码
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 保存我的数组我尝试了一些方法但对我不起作用。

你可以这样设置itemList数组。

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 的更多详细信息,请阅读此 tutorial

编辑: 问题是你试图在 Sting 数组中添加 [String] 对象,这是不可能的,如果你想合并两个数组然后这样写.

if let items = defaults.stringArrayForKey("items") {
    self.itemList = self.itemList + items
}