• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Zwei TableView mit CoreData befüllen?

Wikinator

Adams Parmäne
Registriert
21.08.04
Beiträge
1.297
Hallo,

ich habe 2 TableViews und 2 ArrayController. Diese sind mit 2 Entities "A" und "B" verbunden. Die TableView mit Entity A ist nun die Haupt-TableView, sprich der erste Eintrag in dieser TableView hat mehrere Einträge in der zweiten, die selber auch jeweils Einträge für Textfelder haben.
Wie muss ich nun die beiden TableView in der GUI und die Entities im Modell verknüpfen, damit der erste Eintrag bei A seine Einträge bei B hat etc.?
 

MatzeLoCal

Rheinischer Bohnapfel
Registriert
05.01.04
Beiträge
2.422
Bin mir nicht sicher, aber ich glaube hier wird das behandelt.

Und das hier könnte auch hilfreich sein.

Ich kann im Moment genauer nachschauen, aber werde mir die beiden Sachen bei gelgenheit nochmal anschauen und dann versuchen n Beispiel zu bauen.

Aber ich bin ja noch CoreData-n00b

Greetz,
MatzeLoCal
 

MatzeLoCal

Rheinischer Bohnapfel
Registriert
05.01.04
Beiträge
2.422
Hallo,

ich habe Dir (und für die, die es interessiert) mal ein Beispielprojekt erstellt. Es ist, eine Art Offline Blog.. ich glaube das Standardbeispiel unserer Tage :)

Hier kannst Du es laden. (1.7MB/128kbit Upstream)

Ok.. was ist zu tun:

Der Array (bei mir post), der auf das ausgewählte in dem anderen Array (bei mir author) reagieren soll muss in den Bindings bei "contentSet", den anderen ArrayController und "selection" gesetzt haben (siehe anghängtes Bild) und als "Model Key Path" das Relationship gesetzt haben.


ich hoffe das hilft und kommt nicht zu spät.
 

Anhänge

  • bindings.png
    bindings.png
    64,4 KB · Aufrufe: 156

Wikinator

Adams Parmäne
Registriert
21.08.04
Beiträge
1.297
wie soll ich dabei dann die TableViews mit Daten initiieren?
Zum Beispiel: User klickt "+" und es soll ein neuer Eintrag in TableView A enstehen. Das mach ich dann so:
Code:
	NSEntityDescription *entityDescription = [[[appDelegate managedObjectModel] entitiesByName] valueForKey:@"EntyA"];
	NSManagedObject *site = [[[NSManagedObject alloc] initWithEntity:entityDescription insertIntoManagedObjectContext:[appDelegate managedObjectContext]] autorelease];
	[site setValue:@"Bla" forKey:@"title"];
	[siteController addObject:site];*/

Dann hat das site-Enty zwar ein Title-Objekt (einfacher NSString) aber wie befülle ich dann den Feed-Relationsship? Einfach ein (oder mehrere) neues NSManagedObject mit den entsprechenden Werten erstellen und forKey:mad:"feeds" hinzuzufügen funktioniert nicht.
 

MatzeLoCal

Rheinischer Bohnapfel
Registriert
05.01.04
Beiträge
2.422
Ich kommt jetzt nicht so ganz mit... also das mit dem '+'-Button kannst Du ganz einfach im InterfaceBuilder realisieren. Einfach mit ctrl+gehaltener maustaste von dem '+'-Button auf den ArrayController und bei Target nimmst Du dann add:

Aber vielleicht verstehe ich dich auch nur falsch.
 

Wikinator

Adams Parmäne
Registriert
21.08.04
Beiträge
1.297
klar kann ich das so machen, allerdings will ich auf den Add-Prozess noch Zugriff haben um die Daten manuell zu erstellen. Nur wie erstelle ich die Daten für den Relationship auf B im Enty A?
 

MatzeLoCal

Rheinischer Bohnapfel
Registriert
05.01.04
Beiträge
2.422
In dem Du das eine Object beim anderen einfügst....??
 

Wikinator

Adams Parmäne
Registriert
21.08.04
Beiträge
1.297
? Ich meine, in dem neu erstellten Objekt von A neue Objekte in B (zu A gehörend)
 

MatzeLoCal

Rheinischer Bohnapfel
Registriert
05.01.04
Beiträge
2.422
Könntest Du mal dein DatenModel posten? Oder ist das vergleichbar mit dem aus dem Beispiel... dann versuche ich das am WE mal umzustricken... sofern ich die Zeit dazu finde.
 

Wikinator

Adams Parmäne
Registriert
21.08.04
Beiträge
1.297
ok:
Code:
Haupt-Entry:
author:
[INDENT]name (String)
posts (Relationship zu post)[/INDENT]

post:
[INDENT]title (String)
text (String)[/INDENT]

die TableView mit author ist links und beinhaltet alle Autoren. Beim +-Button wird dann eine Methode im Controller aufgerufen, die mittels NSManagedObject ein Objekt, mit irgendeinem Namen und posts=eine Suchfunktion (die ist nicht das Problem) mit alle dazugehoerigen Posts des Autors, zu der TableView hinzufuegt.

Wie mache ich das nun mit dem hinzufuegen aller posts (die dann in de zweiten TableView angezeig werden)? (Ein Autor hat mehrere Posts, ein Post immer nur einen Autor, in diesem Fall ;))