我的应用程序有两个视图控制器--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)
}
答案 0 :(得分:0)
错误很清楚。
而不是核心数据实体search
,您必须从数据源数组中获取所选行的实例。
OTSProcessConfirmations
顺便说一下,你的代码很难阅读。请遵循命名准则,类和结构名称以大写字母开头,函数和变量名称以小写字母开头。这可以避免这种错误。
此外,请使用比单个字母或缩写更具描述性的名称,特别是如果您要共享代码。
最后,类,结构和核心数据实体应该以单数形式命名(v.PC = OTSs[row!]
)。