Hallo,
momentan befreie ich meinen Code von "unschönen" Hacks. An einem "Problem" hänge ich momentan ein wenig.
Ich habe zwei Entitäten: Haus und Person. In einem Haus wohnen mehrere Personen. Im NSManagedObject Subclass, welcher für Haus-Objekte zuständig ist habe ich eine Methode, die als Argument ein NSDictionary erwartet, welches Informationen zu einer Person, die zum aktuellen Haus hinzugefügt werden sollen enthält. Die Methode soll daraus ein Person Objekt machen und zu ihrer "person" to-Many Relationship hinzufügen. Hier mein Ansatz:
Das Problem sind die letzten beiden Zeilen.
Sobald eine neue Person hinzugefügt wurde soll eine changenotification einer Eigenschaft getriggert werden. Mit setKey:triggerChangeNotification: kann ich das ja nicht machen, da "addPersonWithDictionary:" kein Key ist.
Andere Alternative: Statt:
könnte ich auch ein Set mit den aktuellen Personen + der neuen konstruieren und dann:
aufrufen.
Gibt es aber dennoch ein Möglichkeit, wie weiterhin die elegante mutableSetValueForKey: Lösung verwenden? Falls nicht werde ich wohl das Set konstruieren müssen - wie beschrieben.
momentan befreie ich meinen Code von "unschönen" Hacks. An einem "Problem" hänge ich momentan ein wenig.
Ich habe zwei Entitäten: Haus und Person. In einem Haus wohnen mehrere Personen. Im NSManagedObject Subclass, welcher für Haus-Objekte zuständig ist habe ich eine Methode, die als Argument ein NSDictionary erwartet, welches Informationen zu einer Person, die zum aktuellen Haus hinzugefügt werden sollen enthält. Die Methode soll daraus ein Person Objekt machen und zu ihrer "person" to-Many Relationship hinzufügen. Hier mein Ansatz:
Quellcode
- - (void)addPersonWithDictionary:(NSDictionary *)newPerson {
- Person *newManagedPerson = [[Person alloc] initWithEntity:[NSEntityDescription entityForName:@"Person" inManagedObjectContext:[self managedObjectContext]] insertIntoManagedObjectContext:[self managedObjectContext]];
- [newManagedPerson setValuesForKeysWithDictionary:newPerson];
- [[self mutableSetValueForKey:@"persons"] addObject newManagedPerson];
- [self willChangeValueForKey:@"xyzProperty"]; //FIXME
- [self didChangeValueForKey:@"xyzProperty"];
- }
Das Problem sind die letzten beiden Zeilen.
Sobald eine neue Person hinzugefügt wurde soll eine changenotification einer Eigenschaft getriggert werden. Mit setKey:triggerChangeNotification: kann ich das ja nicht machen, da "addPersonWithDictionary:" kein Key ist.
Andere Alternative: Statt:
könnte ich auch ein Set mit den aktuellen Personen + der neuen konstruieren und dann:
aufrufen.
Gibt es aber dennoch ein Möglichkeit, wie weiterhin die elegante mutableSetValueForKey: Lösung verwenden? Falls nicht werde ich wohl das Set konstruieren müssen - wie beschrieben.
Die Objective-Cloud ist fertig wenn sie fertig ist. Beta heißt Beta.
Objective-C und Cocoa Band 2: Fortgeschrittene
Cocoa/Objective-C Seminare von [co coa:ding].
Objective-C und Cocoa Band 2: Fortgeschrittene
Cocoa/Objective-C Seminare von [co coa:ding].