2 Stimmen

Automatisches Auffüllen aller Eigenschaften einer Objective C-Instanz mit einem Wörterbuch

Ich habe eine Klasse mit Eigenschaften, für die ich Werte aus einem Wörterbuch festlegen möchte.

Mit anderen Worten, ich möchte dies gerne automatisieren:

objectInstace.val1 = [dict objectForKey:@"val1"];
objectInstace.val2 = [dict objectForKey:@"val2"];

mit etwas wie diesem (Pseudo-Code):

for key, value in dict:
    setattr(objectInstance, key, value)

9voto

Chuck Punkte 228137

Sie können die Methode des Key-Value-Coding verwenden setValuesForKeysWithDictionary: . Es tut genau das, was Sie wollen. Einfach [someObject setValuesForKeysWithDictionary:propertiesDictionary] .

0voto

ennuikiller Punkte 44945

Ok, wenn ich nicht etwas übersehe, warum nicht eine Methode wie erstellen:

setObjectProperties: (id) Object withValues:(NSDictionary *)dict

0voto

Grumdrig Punkte 15728

Ich habe das noch nie gemacht, aber es scheint zu funktionieren:

Für jede key im Diktiergerät:

NSString* setMethod = "set" + [key capitalizedString] + ":";  // This is pseudo-code.
SEL setSelector = NSSelectorFromString(setMethod);
[objectInstance performSelector:setSelector withObject:[dict objectForKey:key]];

(Der Code zur Bildung von setMethod ist Pseudocode und wird als Übung belassen, da die Obj-C-Stringmanipulation grauenhaft ist).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X