Ios 以单个名称将多个对象保存到coredata

Ios 以单个名称将多个对象保存到coredata,ios,objective-c,uitableview,core-data,swift3,Ios,Objective C,Uitableview,Core Data,Swift3,我正在从事swift 3.0中的一个项目,其中我有一个带有多选选项的UITableView(每行有一个URL)。因此,在UITableViewuse的顶部,可以在uitext字段中输入名称。我的要求是,一旦选择了这些行,数据应保存在键入的名称下的Coredata中。到目前为止,数据被保存为单个元素,因此我在以其名称对数据进行聚类时遇到了问题。我怎样才能做到这一点??。我保存和提取数据的方法如下 拯救 获取保存的数据 public static func getPlayList() -&g

我正在从事swift 3.0中的一个项目,其中我有一个带有多选选项的
UITableView
(每行有一个URL)。因此,在
UITableView
use的顶部,可以在uitext字段中输入名称。我的要求是,一旦选择了这些行,数据应保存在键入的名称下的
Coredata
中。到目前为止,数据被保存为单个元素,因此我在以其名称对数据进行聚类时遇到了问题。我怎样才能做到这一点??。我保存和提取数据的方法如下

拯救

获取保存的数据

    public static func getPlayList() -> [PlayListDetails]?{
    let appDelegate = UIApplication.shared.delegate as! AppDelegate;
    let context = appDelegate.persistentContainer.viewContext;

    let request = NSFetchRequest<NSFetchRequestResult>(entityName: PlayList_DETAILS_ENTITY)
    request.returnsObjectsAsFaults = false

    do{
        let results = try context.fetch(request)
        if(results.count > 0 ){
            for result in results as! [NSManagedObject]{
                let playListDetails:PlayListDetails? = result as? PlayListDetails
                print("Title: \(playListDetails?.playlistName)")


            }
            return results as? [PlayListDetails]
        }else{
            print("No results")
        }

    }catch{
        print("Error in fetching items")
    }
    return nil;
}
public static func getPlayList()->[playlaydetails]{
让appDelegate=UIApplication.shared.delegate为!appDelegate;
让context=appDelegate.persistentContainer.viewContext;
let request=NSFetchRequest(entityName:PlayList\u DETAILS\u ENTITY)
request.returnsObjectsAsFaults=false
做{
let results=try context.fetch(请求)
如果(results.count>0){
对于结果,结果为![NSManagedObject]{
让播放详细信息:播放详细信息?=结果为播放详细信息
打印(“标题:\(播放详细信息?.playliName)”)
}
将结果返回为?[播放列表详细信息]
}否则{
打印(“无结果”)
}
}抓住{
打印(“获取项目时出错”)
}
返回零;
}

创建一个字典,并用正确的键保存字典中的所有字段。然后将dict转换为数据并保存在coreData中 拯救

收回

首先从CoreData中获取数据,然后再次将其转换为字典

let unarchivedDictionary = NSKeyedUnarchiver.unarchiveObject(with: data)

是否允许更改字段的数据类型?如果是,那么您可以将数据类型更改为NSData,然后您可以将字符串数组保存在一个字段中?
let data = NSKeyedArchiver.archivedData(withRootObject: dictionary)
 let appDelegate = UIApplication.shared.delegate as! AppDelegate
    let context = appDelegate.persistentContainer.viewContext

    let newPlaylist = NSEntityDescription.insertNewObject(forEntityName: PlayList_DETAILS_ENTITY, into: context)


    newPlaylist.setValue(data , forKey:"playlistData");
let unarchivedDictionary = NSKeyedUnarchiver.unarchiveObject(with: data)