iOS VoiceOver 崩溃(消息发送到已释放的实例)

2024-01-13

在启用 VoiceOver 的情况下运行我的应用程序时,我遇到了奇怪的崩溃。该应用程序有一个侧边栏界面(如 Facebook)。当点击其中之一时UITableViewCells 在侧边栏中UITableView,我换出视图控制器(根据点击的单元格创建一个新的控制器并取消分配旧的控制器)。

启用 VoiceOver 后,我有时当我点击手机时发生崩溃。这种崩溃并不是每次都会发生(大约每两到三次尝试一次),并且这并不是导致崩溃的唯一原因(但在我的测试中,它是触发崩溃的主要因素)。

请记住这次事故only启用 VoiceOver 后就会发生这种情况。

当崩溃发生时,我通常会在控制台中看到这一行。

*** -[UITableTextAccessibilityElement setAccessibilityLabel:]:发送到已释放实例 0x1fdaec10 的消息

但我也看到了

* 由于未捕获的异常“NSRangeException”而终止应用程序,原因:“*-[__NSArrayM objectAtIndex:]: 索引 6 超出范围 [0 .. 4]' 请注意,然后我看到NSRangeException启用异常断点后,它不会将我指向代码中发生错误的位置。

So I enabled NSZombies and ran the app in Instruments. The object references was never touched by any of my code. Instruments running NSZombies

我还尝试在调试器之外运行时获取崩溃日志,但不幸的是 Xcode 无法对它们进行符号化。

最后的异常回溯:

0 核心基础 0x2e3c3f46 __exceptionPreprocess + 126

1 libobjc.A.dylib 0x387536aa objc_异常_抛出 + 34

2 CoreFoundation 0x2e2fa52e -[__NSArrayM objectAtIndex:] + 226

3 应用程序名称 0x000e3726 0x46000 + 644902

4 UIKit 0x0250462e 0x24c6000 + 255534

5 UIAccessibility 0x35c029f8 -[NSObject(AXPrivCategory)accessibilityElementCount] + 16

6 UIAccessibility 0x35bfe66a _appendChildrenToArrayStartingAtIndexWithChildren + 318

7 UI辅助功能 0x35bfe51e _appendChildrenToArrayStartingAtIndex + 86

8 UI辅助功能 0x35bfe460 _addAXElementsToArrayFromObject + 1580

9 UI辅助功能 0x35bfddfc _appendVishedAXElementsFromUIElements + 156

10 UI辅助功能 0x35bfdbfe _createAXUIElementsFromUIElements + 126

11 UI辅助功能 0x35bfc218 _copyParameterizedAttributeValueCallback + 152

12 AXRuntime 0x3152395c _AXXMIGCopyParameterizedAttributeValue + 168

13 AXRuntime 0x3152084e _XCopyParameterizedAttributeValue + 438

14 AXRuntime 0x31528158 mshMIGPerform + 184

15 核心基础 0x2e38e9daCFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION + 30

16 核心基础 0x2e38e976 __CFRunLoopDoSource1 + 342

17 核心基础 0x2e38d14a __CFRunLoopRun + 1394

18 核心基础 0x2e2f7c22 CFRunLoopRunSpecific + 518

19 核心基础 0x2e2f7a06 CFRunLoopRunInMode + 102

20 图形服务 0x32fd627e GSEventRunModal + 134

21 UIKit 0x30b9b044 UIApplicationMain + 1132

22 应用程序名称 0x000509e2 0x46000 + 43490

23 libdyld.dylib 0x38c5bab2 tlv_初始化程序 + 2

崩溃发生在 iOS 6 和 7 上。我还尝试从整个应用程序中删除每个辅助功能调用,但应用程序仍然崩溃。

我整个星期都在试图解决这个问题,但我觉得我并没有更接近这个问题。关于从这里开始哪里有什么想法吗?


我有同样的错误。我删除了可访问性方法以消除此错误。 我们需要重写一些辅助方法来支持 iOS 6 中的画外音阅读顺序

- (id)accessibilityElementAtIndex:(NSInteger)index
{
    return [[self accessibleElements] objectAtIndex:index];
}

- (NSInteger)indexOfAccessibilityElement:(id)element
{
    return [[self accessibleElements] indexOfObject:element];
}

如果你的代码根据上面的方法我感觉崩溃了。尝试删除这些方法并检查。我观察到的一件事是删除上述方法后 Voiceover 将不会按顺序读取元素。它将以其他(随机)顺序读取。

希望这能解决您的崩溃问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS VoiceOver 崩溃(消息发送到已释放的实例) 的相关文章

  • ui 测试 xcode,如何使用 cellquery 点击表视图单元格按钮

    我目前正在为我的应用程序进行 ui 测试 并一直点击我的应用程序的登录按钮 我无法找到我提供了标识符注册按钮的元素 该元素是索引中的第三个 这不是问题 let cellQuery self app tables cells element
  • 在 swift3 中结合平移、alpha 和缩放动画

    我是 iOS Swift 开发的新手 我尝试将三个参数组合在一个动画中 但没有成功 我认为解决方案就在这里 Apple Dev Core 动画编程指南 https developer apple com library content do
  • iOS 13 beta 外部屏幕上的 OverscanCompensation

    我正在测试一个应用程序的测试版 但遇到了外部屏幕的问题 我们看到应用程序周围有黑色边框 我们之前可以通过设置来纠正它overscanCompensation to none但在 iOS 13 中 该设置根本没有任何效果 我们曾经看到一个错误
  • 在 swrevealcontroller 之前实现登录屏幕

    我刚刚开始学习 IOS 开发 我已经按照给定的在线教程成功实现了 SWRevealViewController 一切都按预期工作 然后 我决定添加一个登录屏幕 这将是应用程序运行时用户看到的第一个页面 我采取的步骤如下 将 UIViewCo
  • 如何检查 BOOL 是否为空?

    有没有办法在将值分配给 BOOL 之前检查该值是否为 NULL Nil 例如 我在 NSDictionary 中有一个值可以是 TRUE FALSE NULL mySTUser current user following results
  • 将 HTML 'label' 标签与单选按钮一起使用

    是否label标签与单选按钮一起使用吗 如果是这样 你如何使用它 我有一个显示如下的表单 First Name text field Hair Color color drop down Description text area Salu
  • 在 iOS 上,UIView 的 Frame 属性未在动画内部分配

    在我的 iOS 应用程序中 我尝试执行以下简单的动画 void dismissToolbar NSLog bx f by f bw f bh f toolbar frame origin x toolbar frame origin y t
  • Firebase Analytics 禁用受众国家/地区跟踪

    我正在开发一个严格不允许位置跟踪的应用程序 我想使用 Firebase Analytic 的其他功能 例如 PageTransitions 和 Crashalitics 但如果我无法禁用受众位置跟踪 我就无法使用其中任何功能 这是我在 An
  • React Native:不透明视图内的透明视图

    我想用不透明框架和透明中心显示相机的视图 就像图片中的一样 黑色部分是相机的视图 我正在寻找具有纯反应本机组件的解决方案 没有额外的库 例如https github com gilbox react native masked view h
  • 迁移到 ARC 时如何解决“选择器'performSelector:withObject:afterDelay:'没有已知的实例方法”?

    ARC 迁移工具在开始迁移之前拒绝接受此代码 self delegate performSelector selector overlayDismissed withObject self afterDelay 0 委托被迫使用协议来实现此
  • ViewWillAppear 没有被 UISplitViewController 调用

    背景和目标 我有一个基于 UISplitViewController 的 iPad 应用程序 到目前为止它支持 4 个方向 但现在我想将其锁定为仅横向 我变了shouldAutorotateToInterfaceOrientation左视图
  • 为什么使用[ClassName alloc]而不是[[self class] alloc]?

    我正在读马克 达尔林普尔 Mark Dalrymple 的著作在 Mac 上学习 Objective C 仅在协议章节 所以仍然相对较新 并试图弄清楚一些事情 为什么要通过类自己的名称来引用它 如果我有一个叫做Foo 为什么我会想写 比如说
  • “同时创建 xib 文件”按钮已禁用

    我在创建时遇到这个问题UIView s子类 创建 例如 UIViewControllers or UITableViewCells没关系 为什么会出现这种情况 I create view using cmd N and Xcode Vers
  • -[EAGLContext renderbufferStorage:fromDrawable:] 第二次失败?

    我正在开发一个 iOS openGL ES 应用程序 我正在做通常的 EAGLView ES2Render 的事情 启动时 使用以下代码成功创建 frambuffer BOOL createFramebuffers EAGLContext
  • iOS - NSNotificationCenter 多个UIKeyboard通知

    我有两个视图控制器 我们称它们为 A 和 B 1 在 A 中 我显示一个包含文本字段的 popOver 2 B中有一个UITextView用于简单的文本编辑 我必须管理 A 和 B 中的键盘才能滚动键盘隐藏的内容 我知道如何重新定位内容 我
  • iOS Storyboards 我应该使用它们吗? [复制]

    这个问题在这里已经有答案了 我是 iOS 开发新手 尚未创建应用程序 但我向我的朋友寻求建议 他在市场上拥有非常高评价的应用程序 他说不要使用故事板 尽管我很想听取他的建议 但它们似乎确实很有帮助 这是否会在将来给我的应用程序带来问题 我有
  • 在 Flutter 中显示 iOS 的 PDF 内联文件

    我正在 flutter 中专门为 iOS 开发一个应用程序 现阶段 我需要向其中添加 PDF 文件 问题是 flutter 没有原生的方式来显示 PDF 文件 据我研究 由此tread https github com flutter fl
  • 是什么导致了这个 iPhone 崩溃日志?

    我有点卡住了 需要解决这个问题 因为我的一个应用程序出现了随机崩溃 而这些崩溃并不总是能够重现 这是崩溃日志之一 Incident Identifier 59865612 9F00 44EA 9474 2BF607AD662E CrashR
  • 如何确定iPhone铃声的当前级别?

    我正在使用 AVSystemController 将 iPhone 铃声静音 但我不知道如何确定铃声的当前级别 有任何想法吗 PS 是的 我知道使用 AVSystemController 可能会导致应用程序被 App Store 禁止 这不
  • 无法将 admob 与 firebase iOS/Android 项目链接

    我有两个帐户 A 和 B A 是在 Firebase 上托管 iOS Android unity 手机游戏的主帐户 B 用于将 admob 集成到 iOS Android 手机游戏中 我在尝试将 admob 分析链接到 Firebase 项

随机推荐

  • AVPlayer,播放/暂停状态通知?

    我正在寻找一种方法 以便在发生时准确收到通知AVPlayer开始播放 有 费率 属性 但目前我正在定期检查它NSTimer获取更新 我尝试了 KVO 但显然它不符合 KVO 标准 我知道有events https developer app
  • 使用 jquery 动态生成的列表项上的单击事件

    我有一个动态生成的列表 然后我单击该项目并传递index 到另一个函数 问题是这个列表是动态填充的 当我这样做时我的代码没有响应click事件 但是 如果我在动态填充的元素之外添加几个静态 li 元素到列表中 那么这些静态元素就可以工作 这
  • 未通过 .where() 从云函数获取结果

    我正在使用此代码通过比较从集合中获取数据 eslint disable const functions require firebase functions const admin require firebase admin admin
  • 嵌入 Flash 对象上的 HTML 包装器 div 无法通过 jQuery“点击”

    我一直在尝试按照客户的要求进行操作 一旦客户单击 swf 格式的顶部横幅 就重定向到活动页面 然后重定向到目标页面 您可以在以下位置查看已完成的操作 http ausdcf org http ausdcf org 如果您使用 Firefox
  • 在gnuplot中绘制不同颜色的区域

    我制作了以下脚本来在 gnuplot 中绘制图表 有几个点 每个点都封闭在一定的区域内 我想给每个封闭区域指定颜色 我的脚本如下 set terminal wxt set yrange 0 100 set xrange 0 100 unse
  • 检测我正在哪台计算机上运行 R 脚本

    我正在寻找一个 R 函数来返回正在运行脚本的计算机的标识符 或者至少区分两台已知计算机中的一台 我有两台 PC 均运行 Windows 和 RStudio 我通过 VPN 使用办公室的台式机和笔记本电脑 通常处理相同的项目 并且始终使用 R
  • 是否可以等到其他线程处理发布到它的输入消息?

    我想可靠地模拟用户输入到其他窗口 我用SendInput为此 但我需要等到目标应用程序处理输入后再发送更多内容 据我所知 SendInput尽管它的名字如此 但它实际上将消息发布到队列中 并且不会等到它们被处理 我的尝试是基于等待消息队列至
  • jQuery:使用退出按钮退出全屏模式时如何执行代码?

    以下问题 使用我的代码 我通过单击列表中的图像进入全屏模式 我通过 jQuery 将下一个按钮和上一个按钮移动到屏幕边缘 但离开全屏模式后 我希望它们回到原来的位置 但是如何检测全屏模式是否被取消呢 这是我的代码 HTML div span
  • C++ 标准是否保证“a”“b”合并为“ab”? [复制]

    这个问题在这里已经有答案了 下面的代码是cpp标准吗 我以前见过它并且效果很好 但是 我不确定这个标准是否已经存在 include
  • 增强 java.util.Date 类时,cglib 抛出 IllegalArgumentException

    我正在努力增强java util Date与cglib 它不起作用 而且我对 cglib 没有经验 所以我想知道出了什么问题 例如 下面的代码增强了ArrayList works Test public void enhance Array
  • 合并 data.frame 但只保留唯一的列?

    假设我想合并两个 data frames 但有些列是多余的 相同 我如何合并这些 data frames 但删除冗余列 X1 data frame id c a b c same c 1 2 3 different1 c 4 5 6 X2
  • GoogleMock:如何精确预期具有特定参数的一次调用,并查看失败诊断?

    也许是一个技巧问题 我的问题是 如果我写 EXPECT CALL mock handleMessage Times 0 expectation 1 EXPECT CALL mock handleMessage Pointee IsLike
  • 在 opencv 中索引矩阵的最佳方法

    可以说 A and B是相同大小的矩阵 在Matlab 我可以使用简单的索引 如下所示 idx A gt 0 B idx 0 我怎样才能做到这一点OpenCV 我应该只使用 for i 0 rows for j 0 cols if A at
  • R:如何在数据帧内进行偏移和匹配?

    我想使用类似于Excel的OFFSET和MATCH函数的东西 这里是一个示例数据集 数据 Which Test Test1 Test2 Test3 RESULT Test1 TRUE 80 0 Test2 FALSE 25 0 Test1
  • Java继承中的“this”关键字如何工作?

    在下面的代码片段中 结果确实令人困惑 public class TestInheritance public static void main String args new Son Father father new Son System
  • 事件的 Google Analytics 屏幕名称

    我对 Google Analytics 中的 屏幕名称 维度感到困惑 如果您转到 行为 gt 事件 gt 屏幕 您就会看到它 我想知道如何将屏幕名称附加到事件中 目前我正在跟踪屏幕浏览 点击 和事件 点击 我认为分析可以通过查看最后一个屏幕
  • 从 MySQL 中的表的一部分中选择最小值和最大值

    如果我想从整个表中选择最小值和最大值 我可以使用 SELECT min price as min price max price as max price FROM prices 但是如何从表的一部分中选择最小值和最大值呢 例如 我的表中有
  • 经典asp和ASP.NET之间的密码加密/解密

    我有 2 个网站 一个用经典 ASP 编写 另一个用 ASP NET 1 1 框架 编写 这两个应用程序都使用登录机制来验证基于共享数据库表的用户凭据 到目前为止 密码存储在单向 MD5 哈希中 这意味着如果人们丢失旧密码 则必须为其提供新
  • 用于计算百分位数的条件数组

    我有一些数据如下 val crit perc 0 415605498 1 perc1 0 475426007 1 perc1 0 418621318 1 perc1 0 51608229 1 perc1 0 452307882 1 perc
  • iOS VoiceOver 崩溃(消息发送到已释放的实例)

    在启用 VoiceOver 的情况下运行我的应用程序时 我遇到了奇怪的崩溃 该应用程序有一个侧边栏界面 如 Facebook 当点击其中之一时UITableViewCells 在侧边栏中UITableView 我换出视图控制器 根据点击的单