【发布时间】:2019-04-17 18:30:29
【问题描述】:
我正在努力学习 Core Data,想知道是否有可能将遵守 Codable 协议的结构保存到 Core Data?本质上,有一个名为“Stories”的主结构也链接到其他结构。
我的模型的基本结构是:
class GetStories : Codable {
typealias NetworkResponse = (Data?, Error?)->Void
typealias ReadyToSave = ()->Void
typealias RefreshTableView = ()->Void
// MARK: - Instance variables
var dataReturnedByServer : Data?
var stories : Stories?
var delegate: GetStoriesDelegate? // the delegate stops becoming nil when you assign it as the delegate for ViewController.swift
var coverImages : [UIImage]?
// MARK: - Structs
struct Stories : Codable {
let userStories : [Story]
let nextURL : URL
enum CodingKeys: String, CodingKey {
case userStories = "stories"
case nextURL = "nextUrl"
}
}
struct User : Codable {
let userName : String
let userAvatar : String
let userFullName : String
enum CodingKeys : String, CodingKey{
case userName = "name"
case userAvatar = "avatar"
case userFullName = "fullname"
}
}
struct Story : Codable {
let storyID : String
let storyTitle : String
let storyUser : User
let storyCoverImageURL : String
enum CodingKeys : String, CodingKey{
case storyID = "id"
case storyTitle = "title"
case storyUser = "user"
case storyCoverImageURL = "cover"
}
}
... 然后还有一些其他的功能。
根据我的阅读,需要将结构本身转换为类,以便它们可以从 NSManagedObject 派生。这是使用 Core Data 保存“Stories”结构的最佳解决方案吗?
【问题讨论】: