2015-09-01 58 views
0

領域0.95.0在遷移後加載默認領域時有時會崩潰。這種情況很少發生,我們還沒有能夠在調試環境中重現它。我們使用Realm-Cocoa,但是從Swift端點調用。應用程序在遷移後加載默認領域時崩潰

var config = RLMRealmConfiguration.defaultConfiguration() 
    config.schemaVersion = 3 
    config.migrationBlock = { (migration, oldVersion) -> Void in 
     ... 
    } 

    RLMRealmConfiguration.setDefaultConfiguration(config) 
    RLMRealm.defaultRealm() 

這裏是回溯

0x100313ae0 [void realm::util terminate<unsigned long, unsigned long>(char const*, char const*, long, unsigned long, unsigned long) ] (terminate.hpp:45) 
... 
... 
0x10030c44c [realm::SharedGroup SharedGroup(realm::Replication&, realm::SharedGroup::DurabilityLevel, char const*) ] (group_shared.hpp:975) 
0x1003073a0 [RLMRealm initWithPath:key:readOnly:inMemory:dynamic:error:] (RLMRealm.mm:235) 
0x10030821c [RLMRealm realmWithConfiguration:error:] (RLMRealm.mm:400) 
0x100307a98 [RLMRealm defaultRealm] (RLMRealm.mm:302) 
... 

有什麼我們可以做,以防止此崩潰?是否需要按照問題#1589將遷移函數包裝在autoreleasepool塊中?

回答

1

每當在堆棧跟蹤中看到realm::util terminate時,很可能是因爲Realm中的內部一致性斷言失敗,並且通常表示Realm本身中存在損壞的文件或錯誤。如果您有權訪問設備日誌(例如,如果您使用Crashlytics或Hockey等服務收到此故障報告),則應該會看到由斷言失敗打印的消息。

在這些情況下,您可以做的最好的事情是將問題報告給領域團隊([email protected]),儘可能多地提供信息,以便我們重現問題並進一步調查。我們通常非常敏感。

相關問題