Wo ist der beste Ort, um Objekt-Mappings in RestKit zu platzieren?

8

Ich verwende RestKit für ein Projekt und habe festgestellt, dass es in der Klasse keine Methode mehr gibt, mit der Sie alle Zuordnungen steuern können (elementToPropertyMappings). Daher habe ich mich gefragt, wo der neue Code am besten platziert ist Ich mache es in meinem View-Controller, aber ich werde die meisten der gleichen Mappings in anderen Bereichen meines Codes verwenden, so gibt es einen effizienteren Ort, um es zu setzen:

Der Code, auf den ich mich beziehe, ist:

%Vor%

Es wäre großartig, wenn dies in einer Methode für die User-Klasse wäre, die ich aufrufen kann, um diese Mappings etc. einzurichten.

Vielen Dank

    
Matthew Lanham 25.08.2011, 12:56
quelle

3 Antworten

9

Es gibt ein paar gute Möglichkeiten, um Ihre derzeit empfohlenen Mappings zu organisieren:

  1. Fügen Sie alle Ihre Mappings in Ihren App-Delegaten ein und konfigurieren Sie sie bei der App-Initialisierung. Dies hält sie von den Controllern fern und ist nützlich, wenn Sie eine kleine Anzahl von Zuordnungen haben.
  2. Unterteilen Sie den RKObjectMappingProvider und erstellen Sie alle Zuordnungen in der init-Methode Ihrer Unterklasse. Instanziieren Sie dann die Zuweisungsanbieterinstanz, und weisen Sie sie dem Objektmanager zu.
  3. Fügen Sie eine Kategorie zu RKObjectMappingProvider mit einer Methode wie 'defineMappings' hinzu. Importieren Sie dann den Header in Ihren App-Delegaten und rufen Sie ihn nach der Initialisierung von RestKit über [mappingProvider defineMappings] auf.

Das Problem bei der Definition von Zuordnungen bei einer Klassenmethode besteht darin, dass Sie bei Beziehungen Beziehungen mit zirkulären Abhängigkeiten schließen können, da keine iavs zum Speichern der Instanzen verfügbar sind. Wir sind vielleicht in der Lage, etwas mit Blöcken zu tun, um dieses Problem zu lindern, aber es wurde noch keine solche Arbeit geleistet.

    
Blake Watters 25.08.2011, 13:25
quelle
3

Ich denke, das Domänenmodell sollte das einzige sein, das über das Mapping Bescheid wissen sollte. Hier ist, wie ich ein flickr json abbilde:

Ich rufe die Zuordnungen auf, wenn Sie sie brauchen (kann in AppDelegate sein oder wo immer Sie wollen)

%Vor%

Und das ist eines meiner Domain-Objekte: Es enthält das classMethod, das das Mapping durchführt.

%Vor%     
P5ycH0 15.10.2012 16:25
quelle
1

Normalerweise erstelle ich in meinem App-Delegaten eine private Methode, die ich während der App-Einrichtung aufruft, die den RKObjectManager aufruft und dann alle Zuordnungen, die ich in der App verwende, aufbaut. Ich glaube, dass die RestKit Beispielprojekte das gleiche Muster verwenden, also überprüfen Sie diese als Referenz.

    
jeffarena 25.08.2011 13:26
quelle