LoginSignup
0
0

More than 5 years have passed since last update.

MagicalRecordでLighteWeitMigrationが行われるかどうかを検出するスニペット

Last updated at Posted at 2016-05-09

CoreDataのLightweight Migrationが行われるかどうかを検出する
上記記事のMagicalRecord対応版

willmMigrate
    func willMigrate() -> Bool{

        let sqliteURL =
        self.applicationDocumentsDirectory.URLByAppendingPathComponent("MigrateDetect.sqlite")
        let managedObjectModel = NSManagedObjectModel.MR_defaultManagedObjectModel()!

        do {
            // 初回実行時はメタデータの取得が出来ず、下記メソッドがエラーとなるため例外処理を行う
            let metadata = try NSPersistentStoreCoordinator.metadataForPersistentStoreOfType(NSSQLiteStoreType,
                URL: sqliteURL,
                options:nil)
            return !managedObjectModel.isConfiguration(nil,compatibleWithStoreMetadata:metadata)

        } catch {
            return false
        }

    }

MagicalRecordのManagedObjectModelはMR_defaultManagedObjectModel()を使って取得する。
ManagedObjectModelの取得処理関連に手を入れている場合はそれを考慮したコードにしないといけない。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0