2016-10-20 1 views
0

Unter Verwendung der (modifizierten) Beispiele im Reich Swift Dokumentation:Wie die Werte von Realm-Liste bekommen, um in einem UITableView verwendet werden

class Dog: Object { 
    dynamic var name = "" 
    dynamic var age = 0 
    let puppies = List<Puppies>() 
} 
class Person: Object { 
    dynamic var name = "" 
    dynamic var picture: NSData? = nil // optionals supported 
    let dogs = List<Dog>() 
} 

class Puppies: Object { 
     dynamic var name = "" 
} 

annehmen lassen, dass die Person.name = Bob, und dass Bob hat mehrere Hunde zu seiner Hunde Liste hinzugefügt. Ich habe eine weitere Modellklasse namens Puppies hinzugefügt, die Welpen repräsentieren würde, die Bobs Hunden gehören. (Anscheinend besitzt Bob einen Zwinger.)

Wie bekomme ich die Werte, um die Namen von Bobs Hunden und die Anzahl der Welpen, die zu jedem Hund gehören, in einem UITableview anzuzeigen?

Genauer gesagt, was ist der Code zum Extrahieren der Eigenschaftenwerte der Liste der Hunde, die zu Bob gehören. Ich nehme an, sobald ich diese Werte bekomme, wird es nicht schwierig sein, sie in den Tabellenansichtszellen aufzulisten.

Ich entscheide mich, das leicht modifizierte Beispiel aus der Dokumentation anstelle meines eigenen Codes zu verwenden, damit diejenigen, die das lesen, meinen Code nicht interpretieren müssen und sich auf die Lösung konzentrieren können.

Ich konnte meine Daten speichern und glaube, dass ich die Beziehungen zwischen den Objekten richtig verknüpft habe, aber nicht weiß, wie die Werte der List-Objekte basierend auf dem Primärschlüssel, den ich oben habe Level-Modell. Das Problem, das ich habe, ist (anhand des obigen Beispiels): Die Welpen wissen, welchem ​​Hund sie angehören, und der Hund kennt die Person, der er angehört, aber die umgekehrten Beziehungen scheinen nicht zu funktionieren.

(Übrigens, habe ich die LinkingObject Beispiele in der Dokumentation auf einem Spielplatz und es wirft und Fehler Ich bin mir nicht sicher, ob die Beispiele in irgendeiner Weise unvollständig sind..)

Im Reich Browser (Anzeige des Person-Objekts) Ich kann die eingegebenen Daten sehen, aber der Link, der [Hund] anzeigt, hat daneben eine 0, und wenn ich auf den Link klicke, ist die angezeigte Tabelle leer. Vielleicht wird die Lösung dieser Probleme die Antwort sein, um alles andere zum Laufen zu bringen.

Bitte entschuldigen Sie meine Ignoranz. Ich lerne immernoch.

+0

Ich empfehle zu sehen [diese Serie] (https://videos.raywenderlich.com/courses/beginning-realm-on-ios/lessons/1), wird es extrem hilfreich sein für Sie als Anfänger . Und es beantwortet deine Frage. –

+0

Bitte posten Sie Modelle die Sie verwenden und nicht die aus dem folgenden Beispiel. Ihre Frage stimmt nicht mit dem veröffentlichten Code überein (Sie sagen, Sie verwenden LinkingObject, aber der Code zeigt das nicht an). –

+0

Segne dich Ahmad F !! Ich habe nach einem Video-Tutorial auf YouTube gesucht, aber ohne Erfolg. Du hast recht, es beantwortet meine Fragen. –

Antwort

1

Danke an Ahmad F., dass er mich in die richtige Richtung weist. Hier

ist die Antwort:

Ich wusste nicht, wie man die Liste Eigenschaft in jeder der Objektklassen anzuhängen. Dem obigen Beispiel folgend, wird dies getan, indem eine Variable erstellt wird, die das Objekt Person enthält. Dann würde die realm.write-Funktion in etwa so aussehen.

newDog = Dog() 
newDog.name = "Phydeaux" 
..... 
try! realm.write { 
    currentPerson?.dogs.append(newDog) 
Verwandte Themen