我在字节用Core Data踩过的坑

后端说没问题
2026-08-07 08:29
阅读 630

我在字节基础架构组做后端,iOS算半个票友。最近重构了一个用Core Data的项目,总结下核心踩坑点。

数据迁移是重灾区。直接改Entity属性会导致崩溃,必须配置轻量级迁移:

let container = NSPersistentContainer(name: "MyDataModel")
let description = container.persistentStoreDescriptions.first
description?.shouldMigrateStoreAutomatically = true
description?.shouldInferMappingModelAutomatically = true
container.loadPersistentStores { _, error in
    if let error = error {
        fatalError("迁移失败: \(error)")
    }
}

并发陷阱:主线程批量写入会卡死UI。务必用performBackgroundTask将写操作放入后台context,避免线上事故。

谓词查询:中文搜索无结果,因NSPredicate默认不支持拼音匹配。用CONTAINS[cd]操作符解决,c忽略大小写,d忽略变音符号。文档一笔带过,不踩坑记不住。

Core Data采用最终一致性,NSFetchedResultsController的delegate回调即为体现。移动端同样适用CAP理论取舍。工具再先进,基础原理要扎实——AI能生成代码,但搞不定并发Bug和业务场景理解。

评论 0

最热最新
暂无评论
后端说没问题Lv.1
0
影响力
0
文章
0
粉丝