gpt4 book ai didi

ios - 核心数据获取上的 EXC_BAD_ACCESS(code=1, address=0x10)

转载 作者:搜寻专家 更新时间:2023-10-30 23:09:45 24 4
gpt4 key购买 nike

我遇到了一个间歇性错误,证明很难调试。

我从以下方法中得到以下错误

EXC_BAD_ACCESS(code=1, address=0x10) on Core Data Fetch

class func getAll(context: NSManagedObjectContext) -> [Tag] {
var returnValue: [Tag] = []
do {
let fetchRequest = NSFetchRequest(entityName: Tag.entityName())
returnValue = try context.executeFetchRequest(fetchRequest) as! [Tag]
} catch {
}
return returnValue
}

这个 bug 是间歇性的,每隔 100 个 session 才会出现一次,但出现的频率足以让我需要处理它。代码在 returnvalue = try context.execute...

这行中断
  • 从调试来看,我的fetchRequest不是nil
  • 我的上下文不是nil
  • returnValue 有一个空数组的默认值
  • 我的 backgroundContext 在后台线程上运行

我已经打开 NSZombieFlag 来尝试查看是否有一些内存在某处被释放然后被访问,但我对导致这种情况的原因感到困惑。任何想法或见解将不胜感激。

最佳答案

我见过的关于 Core Data 的几乎所有 EXC_BAD_ACCESS 问题都是由于尝试使用线程并发而不是较新的队列并发模型引起的。

从 iOS 5 开始,您需要在访问托管对象上下文时使用 performBlockperformBlockAndWait

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/Concurrency.html

关于ios - 核心数据获取上的 EXC_BAD_ACCESS(code=1, address=0x10),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36222106/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com