gpt4 book ai didi

ios - 以单一名称将多个对象保存到核心数据

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:10:48 25 4
gpt4 key购买 nike

我正在使用 swift 3.0 开发一个项目,其中我有一个带有多个选择选项的 UITableView(每行都有一个 URL)。因此,在 UITableView 之上,使用可以在 UITextfield 中输入名称。我的要求是,一旦选择了这些行,数据就应该以键入的名称保存在 Coredata 中。截至目前,数据已保存为单独的元素,因此我无法以其名称对数据进行聚类。我怎么能做到这一点??。我保存和提取数据的方法如下。

保存

public static func savePlaylistDetails(audio:AudioDetails, playListName: String) {

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

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


newPlaylist.setValue(playListName, forKey:"playlistName");
newPlaylist.setValue(audio.mediaId, forKey:"trackID");

do{
try context.save();
print("Saved.....")
}
catch{
print("There was an error")
}
}

获取保存的数据

    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;
}

最佳答案

创建一个字典并使用适当的键将所有字段保存在字典中。然后将dict转成data保存在coreData中保存..

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");

检索

先从CoreData中获取数据,然后再转换成Dictionary。

let unarchivedDictionary = NSKeyedUnarchiver.unarchiveObject(with: data)

关于ios - 以单一名称将多个对象保存到核心数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43840890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com