Ich benutze RestKit, um einen API-Aufruf zu machen, aber eine meiner Eigenschaft ist nicht korrekt zugeordnet.RestKit Mapping Array von Objekten
Sagen, ich habe:
// Animal.h
@interface Animal: NSObject
@property (nonatomic, strong) NSArray<Fruit*> favoriteFruits;
@end
mit Umsetzung:
// Animal.h
// This class conforms to NSCoding and correctly implements encodeWithCoder and initWithCoder, no problem
Ich habe auch eine Fruit
Klasse mit ähnlichem NSCoding
stuff:
// Fruit.h
@interface Fruit: NSObject
@property (nonatomic, strong) NSString* name;
@end
Hier ist, wie ich meinen Mapping einrichten :
[animalMapping addAttributeMappingsFromDictionary:@{
@"fruits": @"favoriteFruits"
}];
Wenn ich eine GET-Anfrage über RestKit machen, die JSON ich zurück bekommen, ist dies so etwas wie:
{
"fruits": [
{
"name": "banana"
},
{
"name: "apple"
}
]
}
Der Antrag erfolgreich hergestellt wurde, aber wenn ich überprüfen Sie die Mapping-Ergebnis, die Elemente in favoriteFruits
Array in der Animal
Klasse sind nicht vom Typ Fruit
wie ich erwartet habe. Sie sind vom Typ NSDictionary
. Die Werte auf den NSDictionary
sind alle richtig ... Ich brauche nur, um sie zu Fruit
Objekten automatisch umgewandelt werden ...
nicht sicher, ob dies relevant ist, aber wenn ich versuche, dies im Debugger:
(lldb) po ((Fruit*)myAnimal.favoriteFruits[0]).name
ich:
error: Execution was interrupted, reason: Attempted to dereference an invalid ObjC Object or send it an unrecognized selector. The process has been returned to the state before expression evaluation.
Vielen Dank für Ihre Hilfe.