2016-06-21 2 views
1

In Folge ist mein Reich-Datei:eine Eigenschaft in Bereich hinzufügen das Projekt Crash ist

@property NSString *operator; 
@property NSString *publishTime; 

Jetzt füge ich eine Eigenschaft, die Reich-Datei immer:

@property NSString *operator; 
@property NSString *publishTime; 
@property NSString *title; 

dann betreibe ich das Projekt Klicken Sie in Xcode auf die Schaltfläche wo Realm verwendet wird, das Projekt stürzt ab. Der Fehler ist

File "/Users/ltl/Library/Application Support/Realm/rlm_lldb.py", line 226, 
in RLMResults_SummaryProvider if not is_results_evaluated(obj): 
File "/Users/ltl/Library/Application Support/Realm/rlm_lldb.py", line 213, 
in is_results_evaluated 
mode_query_value = next(m for m in mode_type.enum_members 
if m.name == 'Query').GetValueAsUnsigned() 
StopIteration

Wie kann ich es beheben?

Aber wenn ich die APP vom iPhone löschen, führen Sie das Projekt erneut, und klicken Sie auf die Schaltfläche wo Realm verwendet, das Projekt ist nicht abstürzen, so habe ich keine Ahnung, wie Sie dieses Problem lösen? Gott, es ist wieder ein Unfall !!!

Antwort

0

Wenn Sie das Schema eines Realm-Objekts ändern (d. H. Eine neue Eigenschaft hinzufügen), müssen alle vorhandenen Realm-Dateien, die das alte Schema verwenden, a migration durchlaufen, damit sie mit der neuen Eigenschaft aktualisiert werden. In Ihrem Fall sind, da Sie gerade ein neues Feld hinzufügen und keine Daten zu bewegen, müssen Sie nicht in der Migration Block spezifizieren, aber es ist noch zu haben, notwendig:

RLMRealmConfiguration *config = [RLMRealmConfiguration defaultConfiguration]; 
config.schemaVersion = 1; 
config.migrationBlock = ^(RLMMigration *migration, uint64_t oldSchemaVersion) { }; 
[RLMRealmConfiguration setDefaultConfiguration:config]; 

Wenn Sie die App löschen Vom Gerät löschen Sie auch die Realm-Datei darin. Wenn Sie es neu erstellen, stellen Sie eine neue Realm-Datei mit dem neuen Schema bereit, weshalb es danach funktioniert.

Verwandte Themen