首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在异常错误"Thread 3: EXC_BAD_ACCESS (code=2,address=0x16dbc7ff0)“中,该代码意味着什么?

在异常错误"Thread 3: EXC_BAD_ACCESS (code=2,address=0x16dbc7ff0)“中,该代码意味着什么?
EN

Stack Overflow用户
提问于 2022-08-05 07:31:17
回答 1查看 78关注 0票数 0

在对iOS的Xcode项目进行调试时,我遇到了一个运行时错误。该项目运行在运行iPhone 15.5的iOS 8设备上。我在运行macOS蒙特雷版本12.5的macOS上使用Xcode版本13.4.1。

错误消息发生在我初始化自定义结构的代码行中。

线程3: EXC_BAD_ACCESS (code=2,address=0x16dbc7ff0)

这是我的相关代码。错误消息以红色显示,其中正在初始化GroupLocalCache。

代码语言:javascript
复制
import Foundation
import CloudKit

// Wrap a CKRecordZone and its caches (each record type should have its records saved in the caches.
//
final class Zone {
    let cloudKitZone: CKRecordZone
    let caches = [BaseLocalCache]()
    private var groupCache: GroupLocalCache
    
    init(cloudKitZone: CKRecordZone, container: CKContainer, cloudKitDB: CKDatabase) {
        self.cloudKitZone = cloudKitZone
        self.groupCache = GroupLocalCache(container: container, cloudKitDB: cloudKitDB, cloudKitZone: cloudKitZone)
    }
    
}

下面是GroupLocalCache的代码:

代码语言:javascript
复制
final class GroupLocalCache: BaseLocalCache {
    let container: CKContainer
    let cloudKitDB: CKDatabase
    let zone: Zone
    
    private var serverChangeToken: CKServerChangeToken?
    private var groups = [Group]()
    
    init(container: CKContainer, cloudKitDB: CKDatabase, cloudKitZone: CKRecordZone) {
        self.container = container
        self.cloudKitDB = cloudKitDB
        self.zone = Zone(cloudKitZone: cloudKitZone, container: container, cloudKitDB: cloudKitDB)
        
        super.init()
        
        fetchChanges() // Fetching changes with a nil token to build up the cache.
    }
}

BaseLocalCache是BaseLocalCache类的一个修改版本,它附带了来自Apple页面:与其他CloudKit用户共享iCloud数据的CloudKitShare Xcode项目。

我想在上面写着"code=2“的消息中查找"2”所代表的内容。

在stackoverflow*和苹果开发人员论坛上为这个相同的错误发布的其他文章针对的是与我代码中的错误不同的特定情况。

我想知道错误的低级原因是什么,所以我需要知道在异常错误消息中显示的代码是什么,因为它们告诉了异常错误的真正原因是什么,而不是对有关异常错误的帖子的回答。

我想我曾经在苹果以外的另一个来源找到了这些代码的文档。似乎有一些代码被硬件制造商用于“架构”,如"arm64“和"armv7”。我在Xcode项目构建设置中看到了这些设置。

我真的需要知道错误消息中给出的每一段代码代表什么吗?

我在Apple的开发人员文档中找到了这篇文章:

了解崩溃报告中的异常类型

在苹果的异常处理框架上,我在谷歌:异常处理的搜索中找到了这些文档。我看不出我需要什么。这个框架似乎比我现在所需要的要多。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-05 10:19:48

您目前有一个无限的对象创建循环。这就是你撞车的原因。

当崩溃时,不要犹豫地看到调用堆栈,你应该清楚地看到它。

Zone初始化,调用GroupLocalCache初始化,后者调用Zone初始化,后者将调用GroupLocalCache初始化,等等。

所以你需要改变你的对象的逻辑。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73246183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档