总是需要迁移吗?

Is migration always needed?

现在我在 AppDelegate.m 中的代码是:

[MagicalRecord setupAutoMigratingCoreDataStack];
[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:@"db.sqlite"];

费用高吗?是否存在任何代码,例如:

if (DB.version == newVersion) {
    [MagicalRecord setupAutoMigratingCoreDataStack];
    [MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:@"db.sqlite"];
}
else {
    [MagicalRecord setupCoreDataStack];
    [MagicalRecord setupCoreDataStackWithStoreNamed:@"db.sqlite"];
}

这会节省一些性能而不是每次都强制迁移?还是 MagicalRecord/CoreData 在内部处理这个 if 语句?

Core Data 不会进行自动迁移,除非有必要。第一个版本没有 "force" 迁移。 Core Data 总是检查它是否可以使用当前版本的数据模型加载持久存储文件。唯一的区别是如果版本不匹配会发生什么。如果它们确实匹配,则没有额外的迁移相关工作。