从tableview中选择并存储核心数据关系

时间:2016-10-30 17:10:52

标签: user-interface core-data swift3 user-input xcode8

这是我第一次发帖提问。我想在我的帖子中我没有说清楚我真正需要知道的是如何让用户将对象分配给与其相关的其他对象。目前的变种

alnum+

给出错误的变体“不能指定类型'String'的值来键入'NSSet'。

我有两个核心数据实体,Contract和WageClass。两种关系都是多对的(合同可以有很多工资等级,工资等级可以属于多个合同)。我没有问题允许用户添加到工资类和合同的商店,我只是无法弄清楚如何允许用户选择实际的相关数据。

注意:我使用了编辑器 - >创建NSMangedObject SubClass而不是Codegen,以便我可以查看和编辑类。

这是视图控制器,用户输入数据以创建工资类:

contract.wageClass = wageClassIDLabel.text

我知道我需要使用类扩展addToContract但是如何让用户通过UI选择合同?如何让用户选择多个合同?

更新

我添加了一个tableview并将其设置为允许在编辑时进行多项选择。现在我正在寻找一种方法来保存选择。

import UIKit

class AddWCViewController: UIViewController {


    @IBOutlet weak var nameField: UITextField!

    @IBOutlet weak var numberOfWorkersField: UITextField!


    @IBOutlet weak var wagePerHourField: UITextField!



    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }

    @IBAction func submitButtonTapped(_ sender: AnyObject) {



        let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext

        let wageClass = WageClass(context: context)

        wageClass.name = nameField.text!
        wageClass.numberOfWorkers = (numberOfWorkersField.text! as NSString).doubleValue
        let numWorkers = wageClass.numberOfWorkers
        wageClass.wagesPerHour = (wagePerHourField.text! as NSString).doubleValue
        let classPerHour = wageClass.wagesPerHour
        wageClass.classTotalWagesPerHour = numWorkers * classPerHour






        //Save it

        (UIApplication.shared.delegate as! AppDelegate).saveContext()
        navigationController?.popViewController(animated: true)



    }
}

1 个答案:

答案 0 :(得分:0)

您是否构建了核心数据模型中2个实体之间的关系?

如果不遵循此link来创建2个实体之间的关系。这样您就可以访问wageClass.contractscontracts.wageClasses

核心数据不会为您构建UI。核心数据仅用于数据持久性。你必须自己构建UI。