Created
December 30, 2017 00:42
-
-
Save kmkrn/d31a1760a2fd95c93b47095c6a46ff3e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Foundation | |
import Realm | |
import RealmSwift | |
class CatPerson: Object, Decodable { | |
@objc dynamic var personId: Int = 0 | |
@objc dynamic var firstName: String = "" | |
@objc dynamic var lastName: String = "" | |
var cats = List<Cat>() | |
override static func primaryKey() -> String? { | |
return "personId" | |
} | |
private enum CatPersonCodingKeys: String, CodingKey { | |
case personId | |
case firstName | |
case lastName | |
case cats | |
} | |
convenience init(personId: Int, firstName: String, lastName: String, cats: List<Cat>) { | |
self.init() | |
self.personId = personId | |
self.firstName = firstName | |
self.lastName = lastName | |
self.cats = cats | |
} | |
convenience required init(from decoder: Decoder) throws { | |
let container = try decoder.container(keyedBy: CatPersonCodingKeys.self) | |
let personId = try container.decode(Int.self, forKey: .personId) | |
let firstName = try container.decode(String.self, forKey: .firstName) | |
let lastName = try container.decode(String.self, forKey: .lastName) | |
let catsArray = try container.decode([Cat].self, forKey: .cats) | |
let catsList = List<Cat>() | |
catsList.append(objectsIn: catsArray) | |
self.init(personId: personId, firstName: firstName, lastName: lastName, cats: catsList) | |
} | |
required init() { | |
super.init() | |
} | |
required init(value: Any, schema: RLMSchema) { | |
super.init(value: value, schema: schema) | |
} | |
required init(realm: RLMRealm, schema: RLMObjectSchema) { | |
super.init(realm: realm, schema: schema) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment