需要帮助在一个表上保存到UserDefaults数组,并在另一个表上创建表视图单元格

时间:2018-03-21 18:36:37

标签: swift nsuserdefaults

我正在尝试遵循Udemy课程的说明,但我认为当前版本的Xcode中存在严重的语法更改,导致代码无法正常工作。我之前已经逐字复制了它,并且我得到了一个与尝试改变不可变对象有关的错误。我逛了几天,觉得我有现在的语法,但我已经打了另一面墙。虽然我现在可以使用第二视图控制器上的按钮将项目添加到数组中,但它不会保存该项目,因此新项目不会作为单元格加载到附加的表格视图中到第一个视图控制器。

这是我的第一个视图控制器(附在表格视图中)

import UIKit

class FirstViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    var items = NSMutableArray()

    internal func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return items.count
    }

    internal func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: "Cell")

        var cellLabel = ""

        if let tempLabel = items[indexPath.row] as? String {
            cellLabel = tempLabel
        }

        cell.textLabel?.text = cellLabel

        return cell
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        let itemsObject = UserDefaults.standard.value(forKey: "items")

        if let tempItems = itemsObject as? NSMutableArray {
            items = tempItems
        }
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

这是我的第二个视图控制器(附加到文本字段和按钮)

import UIKit

class SecondViewController: UIViewController {

    @IBOutlet weak var itemTextField: UITextField!

    @IBAction func add(_ sender: UIButton){

        var items:NSMutableArray!

        if let itemsObject = UserDefaults.standard.object(forKey: "items") as? NSArray {
            items = itemsObject.mutableCopy() as! NSMutableArray
        } else {
            items = NSMutableArray()
        }

        items.addObjects(from: [itemTextField.text!])
        itemTextField.text = ""
    }

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

0 个答案:

没有答案