通过表视图编辑核心数据

时间:2017-11-06 02:25:40

标签: ios swift

我的应用程序有两个视图控制器--ViewController和ListViewController。在View Controller上有一个表单要完成,ListView控制器给出了所有已完成表单的表格视图。我正处于可以输入数据,删除数据的地步,但我正在努力编码编辑功能。注意我的for是使用Eureka创建的。下面是将信息加载到核心数据中的代码。

我继续尝试找到答案。我观看了很多YouTube视频,但看起来它们已经过时了,我无法映射到新版本的swift。

尝试使用segue:获取错误"键入' OTSProcessConfirmations.Type'没有下标成员"在最后一行代码

  "name".slice(0, 2)    // convert "name" to new StringOps("name").slice(0,2)
  "name".stringPrefix

ListView控制器代码

   override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

    if segue.identifier == "editOTS"
    {
        let v = segue.destination as! ViewController

        let indexpath = self.tableView.indexPathForSelectedRow
        let row = indexpath?.row

        v.PC = OTSProcessConfirmations[row!]

    }

var branch: String = ""
var enterDate: Date? = nil
var OTSQ1: Bool = false
var OTSQ2: Bool = false
var OTSQ3: Bool = false
var OTSQ4: Bool = false
var OTSQ5: Bool = false
var OTSQ6: Bool = false
var OTSQ7: Bool = false
var OTSQ8: Bool = false
var OTSQ9: Bool = false
var OTSQ10: Bool = false
var OTSQ11: Bool = false
var OTSQ12: Bool = false
var OTSQ13: Bool = false
var OTSQ14: Bool = false

var processConfirmation: OTSProcessConfirmations?

@IBAction func BtnSave(_ sender: Any) {



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

    let ots = OTSProcessConfirmations(context:context)

    ots.branch = branch
    ots.enterDate = enterDate
    ots.otsq1 = OTSQ1
    ots.otsq2 = OTSQ2
    ots.otsq3 = OTSQ3
    ots.otsq4 = OTSQ4
    ots.otsq5 = OTSQ5
    ots.otsq6 = OTSQ6
    ots.otsq7 = OTSQ7
    ots.otsq8 = OTSQ8
    ots.otsq9 = OTSQ9
    ots.otsq10 = OTSQ10
    ots.otsq11 = OTSQ11
    ots.otsq12 = OTSQ12
    ots.otsq13 = OTSQ13
    ots.otsq14 = OTSQ14


    // Save the data to coredata

    (UIApplication.shared.delegate as! AppDelegate).saveContext()

    navigationController!.popViewController(animated: true)
}

1 个答案:

答案 0 :(得分:0)

错误很清楚。

而不是核心数据实体search,您必须从数据源数组中获取所选行的实例。

OTSProcessConfirmations

顺便说一下,你的代码很难阅读。请遵循命名准则,类和结构名称以大写字母开头,函数和变量名称以小写字母开头。这可以避免这种错误。

此外,请使用比单个字母或缩写更具描述性的名称,特别是如果您要共享代码。

最后,类,结构和核心数据实体应该以单数形式命名(v.PC = OTSs[row!] )。