Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 选择后,如何使用Swift 4将tableview的多行插入核心数据?_Ios_Core Data_Swift4 - Fatal编程技术网

Ios 选择后,如何使用Swift 4将tableview的多行插入核心数据?

Ios 选择后,如何使用Swift 4将tableview的多行插入核心数据?,ios,core-data,swift4,Ios,Core Data,Swift4,我有两个相关的问题 第一个是-当用户单击“下一步”时,我试图将表视图中的选定项保存到核心数据中,但我希望避免重复。但是,如果项目已在核心数据中,则需要将其显示为已选择-然后,如果用户取消选择该行,则会从核心数据中删除该项目 第二个是-我的模型中有一个save函数,它将项目的名称和与该项目相关的图片的名称放在括号中,我想在tableview控制器中使用它来保存如上所述的选定项目,但是我在访问特定值时遇到了问题。我曾想过使用cell.itemName[indexath.row],但这似乎并不存在 以

我有两个相关的问题

第一个是-当用户单击“下一步”时,我试图将表视图中的选定项保存到核心数据中,但我希望避免重复。但是,如果项目已在核心数据中,则需要将其显示为已选择-然后,如果用户取消选择该行,则会从核心数据中删除该项目

第二个是-我的模型中有一个save函数,它将项目的名称和与该项目相关的图片的名称放在括号中,我想在tableview控制器中使用它来保存如上所述的选定项目,但是我在访问特定值时遇到了问题。我曾想过使用
cell.itemName[indexath.row]
,但这似乎并不存在

以下是保存功能:

func save(result_name: String, result_theme: String, result_pic: String, existing: ClothesResults?) {
    let entity = NSEntityDescription.entity(forEntityName: "ClothesResults", in: managedContext)

    let result = NSManagedObject(entity: entity!, insertInto: managedContext) as! ClothesResults
    result.setValue(result_name, forKey: "resultName")
    result.setValue(result_pic, forKey: "resultPic")
    resultsDB.append(result)

    update()
}
我考虑在tableviewcontroller的prepareForSegue函数中使用if语句,如(伪代码):


您至少应该添加与问题1相关的代码。我添加了,这就是伪代码。我不知道如何完成它。通常情况下,表视图中的数据来自核心数据持久性存储,我是否正确地假设这里不是这种情况,并且表视图中的数据来自其他地方?如果您想检查核心数据中是否已经存在项目,唯一标识符是什么?嗨,Joakim,谢谢您的帮助。我已经将表视图的数据硬编码到核心数据中,我需要选择进入另一个实体,该实体已设置为保存不同类别的项。我曾考虑将保存功能放入didSelectRow或其他程序中,但我不确定这是否有效,或者它是否正确。请阅读-总结是,这不是解决志愿者问题的理想方法,可能会对获得答案产生反作用。请不要将此添加到您的问题中。
if !row exists {
    insert into core data somehow
}