ich einige JSON von einem Webdienst analysieren, gibt dies mir eine NSDictionary, ich dieses Wörterbuch auf einem valueEntity des Typs NSObject vonGibt es eine umgekehrte "setValuesForKeysWithDictionary" - eine makeDictionaryWithObjectProperties?
bewohnter Eigenschaften verwenden[myObject setValuesForKeysWithDictionary:JSONDict];
(myObject hat die gleichen Eigenschaftennamen und Typen als Wörterbuch aus dem JSON-Parser)
name = name
count = count
startDate = startDate
etc..
gibt es eine Möglichkeit in die andere Richtung zu gehen, wo ich eine NSDictionary, die ich „gefüllt“ mit den Eigenschaften und ihre Werte aus einer meiner NSObject Unterklasse haben möchte. Wie ich schon im Titel vorschlagen, etwas entlang der Linien von dieser:
einen Weg
MyObject *myObject = [[MyObject alloc] init];
[myObject setValuesForKeysWithDictionary:JSONDict];
andersrum hierfür ist
NSMutableDictionary *dict = [myObject makeDictionaryWithObjectProperties];
Der Grund um, dass ich habe eine valueEntity, die nach Protokoll meinen Ansichten entspricht, aber ich möchte auch ein NSManagedObject mit den Werten füllen. Also dachte ich mir, dass ich mit NSDictionary als Zwischenschritt umgehen kann, indem ich eine Kategorie in meinem NSManagedObject erstellen muss, die jede Eigenschaft manuell aus dem Wert für mein Objekt-Unterklassen-NSObject einstellt.
Mit einem Wörterbuch ich gehen kann:
[myManagedObject setValuesForKeysWithDictionary:dict];
Ich kann einfach nicht die Wörterbuch Darstellung wieder aus, sobald ich die oben getan?
Hallo jlehr, danke :) Ich sehe, dass es nicht so automatisch ist wie das [obj setValuesforKeysWithDictionary: dict], aber dann, wie Yuji darauf hinweist, ist es möglich, die Eigenschaften auszuwählen und Beziehungen zu vermeiden usw Das ist wirklich großartig, da ich jetzt ein einzelnes Array von Eigenschaftsnamen verwalten kann, die über Objekte verteilt sind, und dies ist eine viel flexiblere Lösung. Nochmals vielen Dank, werde gleich auf die Führer kommen. – RickiG
Hey Ricki, kein Problem :-) – jlehr
Danke für die Antwort .. Ich war auf der Suche nach dem gleichen ... :) – Mrunal