出于性能原因,我想为我的一些实体设置索引属性。我创建了一个新的核心数据模型版本来执行更改。 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/