2016-07-13 8 views
1

Danke für die tolle Arbeit.Refactor Realm-Migration von linkingObjectsOfClass zu RLMLinkingObjects

Kürzlich waren wir in einem tiefen Entwicklungsprozess, und wir sind gerade in die neueste Version von 0.98.1 zu 1.0.1 gegangen.

Eines der Probleme ist, dass wir eine Migration hatte, die wie folgt aussah:

if (oldSchemaVersion < 2) { 
     [migration enumerateObjects:MyClass.className block:^(RLMObject *oldObject, RLMObject *newObject) { 
      newObject[@"property"] = [newObject linkingObjectsOfClass:@"OwnerClass" forProperty:@"myClassInstances"].firstObject; 
     }]; 
} 

Beziehungsweise OwnerClass hat dies:

@property RLMArray<MyClass> *myClassInstances; 

Und MyClass hat dies:

@property OwnerClass *instance; 

Also wissen, wie ich verstehe, sollten wir die MyClass als i verlassen s, aber ändern OwnerClass statt alt zu diesem: @property (readonly) RLMLinkingObjects<MyClass *> *myClassInstances;.

Und nachdem wir dies tun, wie der Migrationsblock aussehen sollte? Ich hatte wirklich Mühe zu verstehen, wie die neue Struktur aussehen sollte ... Jede Hilfe wird geschätzt.

Antwort

2

Wenn Sie eine Eigenschaft vom Typ RLMLinkingObjects deklarieren, müssen Sie nichts in den Migrationsblock aufnehmen.