2015-06-17 4 views
0

У меня есть объект, который я еще нигде не хранил. Даже не создавая для него Realm, приложение вылетает из-за того, что этот объект требует миграции после того, как я его модифицировал.Как перенести объект Realm, который не был сохранен?

Я попытался это (в методе func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool):

RLMRealm.setSchemaVersion(1, forRealmAtPath: RLMRealm.defaultRealmPath()) { (migration: RLMMigration!, oldSchemaVersion: UInt) -> Void in 
    if oldSchemaVersion < 1 { 
     // not needed, nothing stored... 
    } 
} 
RLMRealm.defaultRealm() 

Вход:

*** Terminating app due to uncaught exception 'RLMException', reason: 'Migration is required for object type 'PYDRealmChange' due to the following errors: 
- Property 'relativePath' is missing from latest object model. 
- Property 'source' has been added to latest object model. 
- Property 'target' has been added to latest object model.' 

который, что я нашел в документации. Это не помогло, и приложение все еще терпит крах. Я предполагаю, что мне нужен действительный царство для выполнения миграции. Итак, мой вопрос: как мне перейти, если его нет?

+0

Вы уверены, что устанавливаете версию схемы перед тем, как впервые получаете доступ к Царству? Не могли бы вы также поделиться сообщением об исключении, которое вы видите? Благодаря! – segiddins

+0

Я добавил журнал. Я не уверен, что я устанавливаю его * до *. Я просто выполнил документацию, в которой мне было предложено передать этот код перехода в мой «AppDelegate» ... – Michal

+0

Но также нет Realm для доступа, я даже не создал Realm для этого объекта, я создал объект, но никогда не хранил его в любом месте. – Michal

ответ

1

Так проблема решена:

То, что я не знаю, является тот факт, что я предполагаю, что модель объекта устанавливается в все царства не существующие в приложении, независимо от того, были ли я хранить его в них или нет. Решением было скопировать/вставить код RLMRealm.setSchemaVersion... для всех объектов сферы в моем приложении. Затем он начал работать.

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