iphone - 通过迁移将核心数据索引添加到某些属性

标签 iphone core-data migration indexing mapping-model

出于性能原因,我想为我的一些实体设置索引属性。我创建了一个新的核心数据模型版本来执行更改。 Core Data 检测到更改并将我的模型迁移到新版本,但是未生成任何索引

如果我从头开始重新创建数据库,索引就在那里。 我在 iPhone 和模拟器上使用 SQLite 浏览器进行了检查。 仅当先前格式的数据库已存在时才会出现该问题。

有没有办法手动添加索引?为此写一些sql?或者我错过了什么?我已经做了一些更关键的迁移,没有任何问题。但那些缺失的索引困扰着我。

感谢您的帮助!

最佳答案

我也遇到了同样的问题。

根据Core Data Model Versioning and Data Migration Programming Guide :

Core Data’s perspective on versioning is that it is only interested in features of the model that affect persistence.

仅向现有模型属性添加索引不会自动触发迁移,因为 Core Data 不会将您的两个模型架构视为不同(索引不会影响持久性)。

但是,您可以通过向新索引的属性添加版本哈希修饰符,使 Core Data 将您的模型视为已更改。这触发了轻量级迁移以更新我现有的数据库。

关于iphone - 通过迁移将核心数据索引添加到某些属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2178781/

相关文章:

iOS:从 JSON 更新核心数据数据库

ios - 从核心数据中获取独特值(value)

mysql - 从 MS SQL 迁移到 MySQL : SQLOLEDB? 迁移套件登录错误?

iphone - CGAffineTransform Rotate 旋转次数而不是角度

iphone - Mac OS X 和/或 iOS 中的三元光栅操作?

ios - 一对一关系的值类型 Not Acceptable : property = "user"; desired type = User; given type = User;

ruby-on-rails - 迁移范围的唯一性

mysql - MSSQL 到 MySQL 的迁移

iphone - 警告 : UIKit should not be called from a secondary thread

ios - Tableview 滚动有点烦躁。我怎样才能让它像黄油一样光滑