Ich habe eine Person-Klasse hinzuzufügen, die Realm Objekt erbt und es wird Daten von API-ServerWie Realm Objektklasse in RLMArray
class Person: Object {
dynamic var id: Int = 0
dynamic var email: String? = ""
dynamic var name: String = ""
override class func primaryKey() -> String? {
return "id"
}
init(_id: Int, _email: String?, _name: String) {
id = _id
email = _email
name = _name
super.init()
}
required init() {
super.init()
}
required init(realm: RLMRealm, schema: RLMObjectSchema) {
super.init(realm: realm, schema: schema)
}
required init(value: AnyObject, schema: RLMSchema) {
super.init(value: value, schema: schema)
}
}
Auf der anderen Seite habe ich auch einen Endpunkt haben, der eine NSArray von Person zurückgibt Klasseninstanzen, und ich möchte die Daten der Personenklasse wie unten zuordnen.
class Persons: Object {
var persons: RLMArray = RLMArray(objectClassName: "Person")
init(_persons: [Person]?) {
let personsRLMArray = RLMArray(objectClassName: "Person")
if _persons != nil {
for person in _persons! {
personsRLMArray.addObject(person)
}
}
persons = personsRLMArray
super.init()
}
required init() {
super.init()
}
required init(realm: RLMRealm, schema: RLMObjectSchema) {
super.init(realm: realm, schema: schema)
}
required init(value: AnyObject, schema: RLMSchema) {
super.init(value: value, schema: schema)
}
}
Da dieser Endpunkt NSArray zurückgibt, nicht RLMArray, ich brauche eine RLMArray zu erklären und jedes Element des NSArray in die RLMArray im init hinzufügen.
Dann bekomme ich einen Fehler wie, „Can not Wert vom Typ umwandeln‚Person‘zu erwarten Argument Typ‚RLMObject‘“
Wenn ich die Person, die Elternklasse RLMObject ändern, nicht Objekt, der Fehler verschwindet aber Ich bin mir nicht sicher, ob es der richtige Weg ist. Gibt es eine andere Möglichkeit, diese Art von Fehler zu vermeiden?
Es gibt viele ähnliche Fragen, aber ich konnte nicht die gleiche finden.
Vielen Dank im Voraus!
Danke! es funktioniert perfekt !! – Dave