我正在使用swift 3.0中的一个项目,其中有一个带有多选项(每行有一个URL)的UITableView选项。因此,在TableView之上使用可以在文本字段中输入名称。我的要求是,一旦这些行被选中,数据应该以键入名称保存在coredata中。到目前为止,数据被保存为独立的元素,所以我在使用其名称进行数据聚类时遇到了麻烦。我怎么能做到这一点?我保存并提取数据的方法如下。如何使用单一名称将多个对象保存到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;
}