【问题标题】:NSUserDefaults in swift for saving Array of String for TableViewNSUserDefaults 快速保存 TableView 的字符串数组
【发布时间】:2016-08-27 13:49:50
【问题描述】:

您好,我有一个 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 保存我的数组我尝试了一些方法,但对我不起作用。

【问题讨论】:

    标签: ios arrays swift nsuserdefaults


    【解决方案1】:

    你可以这样设置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
    }
    

    【讨论】:

    • 我试图将项目附加到 itemList 但它说无法转换类型'[String]的值?'对于预期的参数类型“字符串”,我不知道我应该做什么
    • 如果你不介意的话,我有另一个报价,如果我点击特定的单元格,我需要那个单元格的标题是第二个视图控制器的标题
    • 欢迎朋友,编码愉快:)
    • 你能添加新的帖子和你的导航代码,这将帮助我了解你的尝试。
    • 不明白你想要什么,也没有导航代码,如果你添加新帖子就很糟糕。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    • 1970-01-01
    相关资源
    最近更新 更多