2016-06-21 1 views
1

В последующем моей области файл:Добавьте свойство в области проекта аварии

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

Теперь я добавить свойство, файл область становится:

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

я запустить проект в Xcode, нажмите кнопку, где используется область, проект сбой. Ошибки:

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

Как это исправить?

Но Когда я удаляю APP с iPhone, снова запустите проект и нажмите кнопку, где используется область, проект не является крахом, поэтому я понятия не имею, как решить эту проблему? Боже, это снова крушение !!!

ответ

0

Когда вы изменяете схему объекта Realm (т. Е. Добавляете новое свойство), любые существующие файлы Realm, использующие старую схему, должны пройти a migration, чтобы их можно было обновить новым свойством. В вашем случае, так как вы просто добавить новое поле, а не перемещения каких-либо данных, вам не нужно указывать в миграции блока, но это по-прежнему необходимо иметь:

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

При удалении приложения с устройства, вы также удаляете файл Realm внутри него. Когда вы его перестраиваете, вы развертываете новый файл Realm с новой схемой, поэтому он работает после этого.

Смежные вопросы