我从网络服务中获取数据。从这些数据中,我通过以下命令创建了托管对象:
let videoTitle = snippet["title"] as! String
let videoDescription = snippet["description"] as! String
let videoThumbnail = ((snippet["thumbnails"] as! NSDictionary)["default"] as! NSDictionary)["url"] as! String
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else {
return
}
let managedContext = appDelegate.persistentContainer.viewContext
let entity = NSEntityDescription.entity(forEntityName: "YTVideo",
in: managedContext)!
let video = YTVideo(entity: entity, insertInto: managedContext)
video.videoID = videoID
video.videoTitle = videoTitle
video.videoDescription = videoDescription
video.videoThumbnail = videoThumbnail
video.isFavorite = false
ytVideos.append(video)
在代码中,ytVideos
是一个数组。
现在,用户可以选择保存对象。如果他选择保存对象,我想使用命令将其放入持久存储中:
managedContext.save()
但是,这将保存我创建的所有对象。
如何保存特定对象?
当然,我总是可以创建另一个模型,让用户玩这个模型的对象,然后使用模型YTVideo
来获取核心数据,但为了简单起见,我只想为我的应用程序使用一个模型。我该怎么做?
非常感谢。
答案 0 :(得分:0)
保存一个对象的简单方法是创建子托管对象上下文,然后在该上下文中创建特定对象。现在,在父上下文中调用save之前,它不会真正保存到持久存储中。如果你真的希望它独立于所有其他对象而持久化,那么创建一个对等上下文。从同行中拯救将推送到商店。也就是说,您需要将这些值读入上下文才能使用它们。