Ios MVC模型遵从性

Ios MVC模型遵从性,ios,swift,core-data,model-view-controller,uiviewcontroller,Ios,Swift,Core Data,Model View Controller,Uiviewcontroller,我有一个将大量数据写入CoreData数据库的应用程序,我将根据用户查询对其进行查询并给出反馈 现在我在VC中有了DB操作,我想把它移到一个单独的文件中,我称之为modelDB // MARK: Outlets @IBOutlet weak var courseField: UITextField! @IBOutlet weak var par3Field: UITextField! @IBOutlet weak var par4Field: UITextField! @IBOutlet wea

我有一个将大量数据写入CoreData数据库的应用程序,我将根据用户查询对其进行查询并给出反馈

现在我在VC中有了DB操作,我想把它移到一个单独的文件中,我称之为modelDB

// MARK: Outlets
@IBOutlet weak var courseField: UITextField!
@IBOutlet weak var par3Field: UITextField!
@IBOutlet weak var par4Field: UITextField!
@IBOutlet weak var par5Field: UITextField!
@IBOutlet weak var errorLabel: UILabel!

// MARK: Actions
@IBAction func addNewCourse(sender: AnyObject) {

  let appDel: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate

  let context: NSManagedObjectContext = appDel.managedObjectContext

  let newCourse = NSEntityDescription.insertNewObjectForEntityForName("CourseDB", inManagedObjectContext: context)

  newCourse.setValue(courseField.text, forKey: "courseName"
  newCourse.setValue(Int(par3Field.text!), forKey: "totalPar3")
  newCourse.setValue(Int(par4Field.text!), forKey: "totalPar4")
  newCourse.setValue(Int(par5Field.text!), forKey: "totalPar5")

  do {

    try context.save()
    performSegueWithIdentifier("Back", sender: self)

  } catch {

    errorLabel.text = "Data was not saved"

  }

}
从上面可以看出,我正在将数据写入数据库,我更希望在modelDB文件中这样做,然后将其传递回VC

你能给我一些关于如何做到这一点的建议吗

需要新信息和帮助 我创建了一个全局数组来捕获和传递UITextFields中包含的信息:

newCourseList = [courseField.text!, par3Field.text!, par4Field.text!, par5Field.text!]
modelDB.addNewCourseToDB(newCourseList)
运行此命令时,我得到一个致命错误“致命错误:在展开可选值时意外发现nil”,尽管数组有4个值

在ModelDB类中,我传递给的func如下所示:

    func addNewCourseToDB(_: [String]) {

                let appDel: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate

                let context: NSManagedObjectContext = appDel.managedObjectContext

   // code
    }
但是由于错误,代码没有达到这个阶段。
如何修复此数组传递?

为了与
ModelDB
类通信(假设它是一个类),只需向视图控制器添加一个属性即可。这是建立关系的好方法:

var modelDB: ModelDB!
关于管理从
ModelDB
返回控制器的通信,有许多方法可以做到这一点,所有这些都将在本objc.io问题中详细介绍: