将保存的密钥数据加载到UITableView

时间:2015-07-26 15:12:40

标签: ios xcode swift uitableview nsuserdefaults

这是我在表格中添加名称的代码:

@IBAction func addButtonAction(sender: AnyObject) {
        mineSpillere.append(namesTextBox.text)
        myTableView.reloadData()
    }

这是我的“mineSpillere”:

var mineSpillere = [String]()

这是我保存密钥的代码:

func saveKey(){
        println("saving key")

        var defaults = NSUserDefaults.standardUserDefaults()
        defaults.setObject(mineSpillere, forKey: "spillereKey")
        defaults.synchronize()

        println(mineSpillere)
    }

这是我的viewDidLoad代码:

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.x

    if (NSUserDefaults.standardUserDefaults().objectForKey(spillereKey) != nil) {
        if let testArray : AnyObject? = NSUserDefaults.standardUserDefaults().objectForKey(spillereKey) {
            var readArray : [NSString] = testArray! as! [NSString]
            println(readArray)
        }
    }

    self.myTableView?.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
    self.myTableView.dataSource = self
}

这是我加载密钥的代码:

if (NSUserDefaults.standardUserDefaults().objectForKey("spillereKey") != nil) {
            if let testArray : AnyObject? = NSUserDefaults.standardUserDefaults().objectForKey("spillereKey") {
                var readArray : [NSString] = testArray! as! [NSString]
                println(readArray)
            }
        }

“println(readArray)”在控制台中给出了一个如下所示的输出:

  

[“erik”,“tom”,“phil”]

这是我的tableView cellForRowAtIndexPath:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        var cell:UITableViewCell = self.myTableView.dequeueReusableCellWithIdentifier("cell") as! UITableViewCell

        cell.textLabel!.text = self.mineSpillere[indexPath.row]

        return cell;
    }

如何在“viewDidLoad”中添加密钥将其数据加载到tableView中?我已使用NSUserDefaults将表数据保存到密钥中。我想在打开视图控制器(viewDidLoad)时将该数据写入UITableView。

1 个答案:

答案 0 :(得分:0)

通常你不必使用reload命令,但在某些情况下它可能是合适的。

self.tableView?.reload()