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
}
嗨,我有一个 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
}