了解如何在Realm Swift中完成关系

时间:2017-04-08 16:01:32

标签: ios swift uitableview realm relationship

我很难理解如何创建one-to-many关系中彼此相关的对象。

是否有需要输入数据的特殊序列?换句话说,是否需要同时输入所有者和物品?

以下是我要做的事情,以便更好地理解。

我有一个简单的类似shoppingList的应用程序,其中列表可以包含许多项目。我想要的是first让用户能够将单个项目输入UITableView然后如果用户想要保存数据,那么他就会创建一个new list但是我我不确定如何或何时输入数据。

以下是我在Realm中保留项目的代码,并在表格中显示这些项目。

ShoppingList类

import Foundation
import RealmSwift

class ShoppingList: Object{
    dynamic var listName = ""
    var itemList = List<Item>()
}

项目类

import Foundation
import RealmSwift

class Item:Object {

    dynamic var productName: String = ""
}

主ViewController

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet weak var inputProductName: UITextField!
    @IBOutlet weak var inputListName: UITextField!
    @IBOutlet weak var itemsTable: UITableView!

    var item:Item? 
    var realm:Realm?

    override func viewDidLoad() {
        super.viewDidLoad()
        realm = try! Realm()
    }

    @IBAction func newItem(_ sender: Any) {
        item = Item()
        item?.productName = inputProductName.text!

        try! realm?.write {
            realm?.add(item!)
        }

        itemsTable.reloadData()
        inputProductName.text = “” // clear inputField
    }

    /// TABLE
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        let items = realm?.objects(Item.self)
        return (items?.count)!
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = UITableViewCell()
        let items = realm?.objects(Item.self)[indexPath.row]
        cell.textLabel?.text = items?.productName
        return cell
    }
}

的TableView

enter image description here

如何创建包含表格中显示的项目的列表?

0 个答案:

没有答案