Korrekte Methode zum Abrufen eines einzelnen Objekts aus der Realm-Datenbank
Bin ich absolut lieben Reich (0.92) in Kombination mit Swift, aber habe eine Frage über das Lesen eines Objekts aus der Datenbank. Mein Ziel ist es zum abrufen eines einzelnen Objekts mit einer bekannten, eindeutigen ID (was auch passiert, den Primärschlüssel.
Alle in der Dokumentation angezeigt werden, orientiert Abfragen für mehrere Objekte, die dann gefiltert. In diesem Fall kenne ich die Objekt-ID, und da es bekannt ist, einzigartig zu sein, möchte es abrufen direkt.
Mein Aktueller Ansatz ist wie folgt:
Realm().objects(Book).filter("id == %@", prevBook.nextID).first
Scheint dies heavy-handed. Dokumentation von früheren Versionen suggerieren, dass es einen direkteren Weg, aber ich kann nicht scheinen, um es zu suchen in der Dokumentation.
Das problem mit meinem aktuellen Ansatz ist, dass es abstürzt, mit einer Ausnahme, auf die folgende Funktion:
public func filter(predicateFormat: String, _ args: CVarArgType...) -> Results<T>
Ausnahme ist auf mysteriöse Weise berichtet:
EXC_BAD_ACCESS (code=1, address=0xedf)
Anregungen sind sehr willkommen.
Antizipation einer Zeile der Fragestellung: ich habe bestätigt, dass die Ersetzung prevBook.nextID mit einem bekannten, guten-ID löst das problem nicht,
InformationsquelleAutor der Frage Andy | 2015-06-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Objekt(ofType:forPrimaryKey:) ist, was Sie suchen:
Realm().object(ofType: Book.self, forPrimaryKey: prevBook.nextId)
. Es gibt keine einfachere Möglichkeit, alsfilter().first
wenn Sie brauchen, um Suche nach dem Objekt durch etwas anderes als den Primärschlüssel.InformationsquelleAutor der Antwort Thomas Goyne