2016-06-20 10 views
0

Mehrere meiner Objekte haben das Feld "ID" und RestKit wird nicht zulassen, dass ich beide auf den gleichen Namen zuordnen. Wie kann ich das beheben? Für diese beiden Objekte habe ich ein entsprechendes serverseitiges Objekt mit der Eigenschaft MyId, die ausgefüllt werden muss. Ich möchte die Eigenschaften nicht als Lösung benennen müssen. HierRestkit Kann Zuordnung für KeyPath nicht hinzufügen

ist ein Beispiel für zwei Klassen I verwenden:

@interface MyObject : NSObject 
@property NSNumber *id; 
@end 

@interface AnotherObject : NSObject 
@property NSNumber *id; 
@end 

Hier ist ein Beispiel für den Code, den ich auf diese beiden Objekte laufen würde:

RKObjectManager* objectManager = [RKObjectManager managerWithBaseURL:url]; 
RKObjectMapping *userMapping = [RKObjectMapping requestMapping]; 
NSDictionary *objMapping = @{@"id": @"MyId"}; 

[userMapping addAttributeMappingsFromDictionary:objMapping]; 
RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:userMapping objectClass:[MyObject class] rootKeyPath:nil method:RKRequestMethodPOST]; 
[objectManager addRequestDescriptor:requestDescriptor]; 

objMapping = @{@"id": @"MyId"}; 

[userMapping addAttributeMappingsFromDictionary:objMapping]; 
requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:userMapping objectClass:[AnotherObject class] rootKeyPath:nil method:RKRequestMethodPOST]; 
[objectManager addRequestDescriptor:requestDescriptor]; 

Hier ist der Fehler dass ich bekommen würde:

Beenden App aufgrund der nicht abgefangenen Ausnahme 'NSInternalInconsistencyException', Grund: 'Kann Zuordnung für keyPath MyId nicht hinzufügen, eine existiert bereits ...'

+0

Ich denke, Ihre Beurteilung der Frage ungenau ist - zeige die Definition von 'MyObject' und erkläre genau, was du machst, wenn du die Ausnahme bekommst (zeige den Stack-Trace) – Wain

+0

Aktualisierte den Beitrag, um genauer zu sein. – HawkEye1194

+0

Danke für die Hilfe! Kennst du auch irgendwelche Webseiten für gute RestKit Tutorials? Relativ neu dazu. Ich kenne das RestKit GitHub Tutorial schon, aber ich frage mich, ob es mehr gibt. – HawkEye1194

Antwort

1

Das Problem ist einfach, dass Sie anrufen:

[userMapping addAttributeMappingsFromDictionary:objMapping]; 

mehrere Male mit den gleichen Parametern und das ist nicht erlaubt.

Im konkreten Fall in Ihrer Frage brauchen Sie diese zweite Zeile nicht. Im allgemeinen Fall würden Sie einige andere Unterschiede in der Zuordnung, so dass Sie eine neue Zuordnung erstellen würde (und dann das Wörterbuch von Mappings, um es hinzuzufügen):

[RKObjectMapping requestMapping] 
Verwandte Themen