iOS 64 位 @try {... } @catch {...} 不起作用

2024-06-26

我有一个非常特殊的问题。

最近,我向我的 iOS 项目(arm64)添加了 64 位支持,从那时起,我开始收到内部代码段未捕获的异常@try...@catch(我使用 Crashlytics 进行崩溃报告)。我设法在应用程序中的任何位置使用以下代码行重现问题(我将它们写在里面)init我的视图控制器之一):

@try {
    NSMutableDictionary *m = [[NSMutableDictionary alloc] init];
    NSString *s;
    m[s] = @"poop";
} @catch (NSException *e) {
    NSLog(@"POOP");
}

异常被捕获UncaughtExceptionHandler而不是@catch条款。我很困惑什么会导致这种情况。控制台中的输出:

2015-02-22 19:19:53.525 [391:30650] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** setObjectForKey: key cannot be nil'
*** First throw call stack:
(0x18823a59c 0x1989400e4 0x1881251f8 0x10011e2f4 0x10011e068 0x10010e480 0x10010db78 0x10010d944 0x1000a8050 0x100075d88 0x100075160 0x100142044 0x100141f6c 0x18c9ecaa0 0x18caa1fb4 0x18caa1eb0 0x18caa134c 0x18caa0ff8 0x18caa0d18 0x18caa0c98 0x18c9e9648 0x18c341994 0x18c33c564 0x18c33c408 0x18c33bc08 0x18c33b98c 0x18cc76dbc 0x18cc77c68 0x18cc75dec 0x1904b162c 0x1881f2a28 0x1881f1b30 0x1881efd30 0x18811d0a4 0x18ca573c8 0x18ca523c0 0x1000747d8 0x198faea08)
libc++abi.dylib: terminating with uncaught exception of type NSException

我尝试删除我拥有的自定义异常处理程序并禁用 Crashlytics,但仍然没有成功。

一旦我删除arm64 from ARCHS and VALID_ARCHS代码有效并且异常被按预期捕获。

任何信息将不胜感激!


小更新 - 我们的 XCTests 也开始不捕获异常,到目前为止,该行为仅发生在物理 64 位手机上。


经过长时间的 git 二分操作后,罪魁祸首是以下链接器标志

-no_compact_unwind

我使用了 BlocksKit v2.2.0,尽管它停止使用 libffi,但它仍然具有该标志(最新版本的 BlocksKit 删除了该不需要的标志)。当我删除链接器标志 64 位后@try...@catch块再次开始工作。

我仍然不完全理解为什么会发生这种行为,但如果我发现任何有趣的事情,我将进一步挖掘并更新此线程。

phew

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

iOS 64 位 @try {... } @catch {...} 不起作用 的相关文章

  • 接受 iOS 应用付款吗?

    在ios应用程序上实现支付系统可以吗 我想制作一个应用程序 可以浏览我的电子商务网站上的产品 然后让人们在我的应用程序上购买产品 我问这个问题是因为我听说它违反了苹果的政策 这显然取决于所出售的商品 当然 最终的答案只能从你的律师对苹果协议
  • 我们可以传递一个参数来查看某个类中其他类的加载情况或视图将出现吗

    抱歉 如果这不是标准问题 但现在您的解决方案可以帮助我 在我的应用程序中 我有两个类 ClassA and ClassB ClassB其中有一个表视图 我正在使用查询来填充表视图ClassB 但是我必须查询的列名是我从中得到的ClassA
  • 如何在iOS中将底部安全区域设置为XIB?

    我想打开自定义弹出视图 在 XIB 中设计 它从底部显示 但现在在 iPhoneX 模拟器中 它从屏幕底部显示 我想在安全区域打开弹出窗口 iPhone X 的结果 并且 XIB 布局有约束 简单来说解决方案 使用超级视图删除底部约束并将其
  • IOS 向特定用户推送通知?

    是否可以向特定设备发送 iOS 推送通知 我构建了一个论坛类型的应用程序 用户可以创建问题 其他人可以回答它 我需要向提出问题的特定用户发送 iOS 推送通知 通知他们问题已得到解答 这可以通过 PHP 或其他方法来完成吗 是的 您绝对可以
  • 为什么字符串加法需要这么长时间才能构建?

    我正在添加文本UIlabel 及其性能成本 我使用过构建时间分析器使用此链接 https stackoverflow com questions 43455325 swift build time too long when the con
  • ASIHTTPRequest 登录页面

    我尝试制作一个 iPhone 应用程序 可以登录到使用 https 保护用户信息的 Web 应用程序 现在我陷入了登录页面 我不知道通过我的应用程序登录时如何检查用户网站中的真实帐户 即使我输入错误的帐户 我也只收到 200 的回复 这是我
  • 有没有办法检查 iOS 设备是否锁定/解锁?

    我在我的应用程序中使用了 GPS 位置更新 我想检测 iOS 设备是否处于睡眠模式 以便我可以关闭 GPS 位置更新并优化电池使用 我已经在iOS 6中尝试过pausesLocationupdates 但它无法按预期工作 我想在设备进入睡眠
  • 仅当数组为空时 JSON 反序列化才会失败

    在某些情况下 当我收到数组属性之一为空的 JSON 时 反序列化会失败 并引发以下异常 无法将当前 JSON 对象 例如 name value 反序列化为类型 SonicApi ClickMark 因为该类型需要 JSON 数组 例如 1
  • 创建 iPhone 与外部设备连接的硬件。阿杜伊诺?

    嗨 我需要创建一个简单的连接器 我想我可能需要创建一个arduino板 它将从应用程序中获取数据 然后将它们传输到外部设备 应用程序中有一个滑块可供用户调整 调整滑块时 应用程序只会将值从应用程序发送到我需要建立的连接 该连接将连接到外部设
  • iOS Facebook Like 按钮无法与 iOS 应用程序配合使用

    尝试将 Facebook Like 按钮添加到 iOS 应用程序中 按照网上的说明进行操作 发现一个问题 模拟器上没有安装 Facebook 应用程序 8 x 7 x 当按下 F Like 按钮时 我们会看到切换到 Facebook com
  • Facebook SDK:openActiveSessionWithPermissionscompletionHandler 未调用

    使用我已经实现的 Facebook 代码 BOOL openSessionWithAllowLoginUI BOOL allowLoginUI NSArray permissions NSArray alloc initWithObject
  • UIStackView - 拖动以重新排序排列的子视图?

    我试图获得一些关于如何实现在 a 上发现的相同类型的 拖动重新排序 行为的建议 UITableView但在一个UIStackView 到目前为止 这就是我的想法 为每个按钮添加一个长按手势识别器arrangedSubviews 长按时 添加
  • UIDatePicker 中的最小和最大日期

    我想从日期选择器中获取最小和最大日期 但最小日期应为当前日期的 18 最大日期应为当前日期的 100 假设当前年份是 2018 年 那么我想要最小日期 2000 年和最大日期 1918 年 到目前为止我所做的是 NSCalendar gre
  • Swift - 使用 NSUserDefaults 保存高分

    我正在使用 Swift 制作游戏 我想使用 NSUserDefaults 保存用户的高分 我知道如何在 AppDelegate 文件中创建新的 NSUserDefaults 变量 let highscore NSUserDefaults N
  • 将渐变应用于 UIImage - 如何消除颜色反转?

    我正在应用渐变UIImage 我希望它底部是黑色的 中间慢慢变成透明或浅灰色 基本上没问题 但我有一个问题 在这个渐变下 我的图像颜色在某些地方反转 这看起来很烦人 我该如何解决这个问题 为了您方便 我的方法如下 我尝试过选择不同的混合模式
  • 如何将文本从文本字段发送到另一个视图控制器

    我正在制作一个应用程序 其行为类似于 iPhone 中的默认 Messages app 用户可以在其中编写短信UITextField点击 发送 按钮后 该值UITextField in ComposeViewController将被转移到表
  • 在同步子句中抛出异常的副作用?

    从同步子句中抛出异常是否有任何不清楚的副作用 锁会发生什么情况 private void doSomething throws Exception synchronized lock doSomething 我没有看到任何副作用 The 锁
  • iOS APNS:以字符串格式将设备令牌发送给提供商

    我需要通过调用在我的请求中需要 JSON 数据的服务 将 iOS 应用程序的 APNS 设备令牌发送给我的提供商 我正在阅读苹果的本地和推送通知编程指南 https developer apple com library ios docum
  • UIScrollView 在缩放或滚动时阻止所有触摸

    当 UIScrollView 通过捏合手势或滚动进行缩放时 我无法按同一窗口中的任何其他按钮 有什么办法可以启用这种行为吗 这就像滚动视图具有独占触摸 尽管我尝试将其明确设置为NO 我在视图中有一个滚动视图 我希望它仅在用户按住滚动按钮时滚
  • Ionic 3 Deeplinking - 从 URL 启动应用程序

    我正在使用 Ionic 开发一个跨平台应用程序 当尝试实现深度链接时 我安装了一个名为 Ionic Native 插件深层链接 我运行了这些命令 ionic cordova plugin add ionic plugin deeplinks

随机推荐

  • 识别出现在指定位置的所有元素

    jQuery 中是否有任何方法可以选择位于特定位置的所有元素 例如选择位于 left 100 和 top 300 的元素 另一个 div 位于同一位置 单击时我想获取两个 Div 的 ID 如果我可以选择位于一系列位置的元素 那就太好了 h
  • 是否有与可移植类库一起使用的 RestSharp 实现?

    当我尝试使用 nuget 将 RestSharp 添加到可移植类库项目时 我得到以下信息 无法安装软件包 RestSharp 104 1 您正在尝试安装 这个包到一个目标项目中 NETPortable Version v4 0 Profil
  • 为什么 ColdFusion 的设计者决定从 1 而不是从 0 开始索引数组?

    我只是很好奇这一点 有谁知道他们为什么打破惯例 谢谢 夏兰 Cory 如果你知道谁潜伏在 StackOverflow 上 你会感到惊讶 你说得非常对 CFML 的最初设计是为了允许非程序员构建复杂的 Web 应用程序 ColdFusion
  • Android - 滑动删除RecyclerView

    我正在尝试实现与 Gmail 应用程序 滑动到存档 相同的滑动删除功能 我尝试了很多教程 但没有一个像 gmail 那样运行得那么快 我不喜欢在外部库上工作 我该怎么做 Edit 到目前为止我的代码 ItemTouchHelper Simp
  • 如何正确调用 LsaLogonUser 进行交互式登录?

    我正在尝试使用 LsaLogonUser 创建交互式登录会话 但它总是返回STATUS INVALID INFO CLASS 0xc0000003 从网上查到的内存布局KERB INTERACTIVE LOGON结构很棘手 但我很确定我做得
  • 将环境变量从 fastlane 传递到 Xcode 构建阶段脚本

    是否可以 如果可以 如何 将环境变量从运行 fastlane 的脚本传递到 Xcode 运行脚本阶段 我的最终目标是在运行脚本阶段读取当前的 git 分支名称 我们的 CI 由 Team Foundation Server 运行 它执行以下
  • ListView选择单个项目,wpf

    我有一个列表视图 它的项目源是一个列表 我希望用户只选择一项 当我将列表视图的 SelectionMode 设置为 single 时 用户仍然可以选择多个项目 并且列表视图似乎变得疯狂并选择用户未选择的项目 看起来很奇怪 任何人都知道可能是
  • 捕获非特定异常(例如 System.Exception)是一种不好的做法吗?为什么?

    我目前正在进行代码审查 下面的代码让我跳了起来 我发现这段代码存在多个问题 你是否同意我的观点 如果是这样 我该如何向我的同事解释这是错误的 顽固型 捕获一般异常 Exception ex 使用 if ex 是某物 而不是另一个 catch
  • CSS 底部边框悬停“抖动”

    我有一个导航栏 当您将鼠标悬停在导航按钮上时 我想给它一个橙色的底部边框 唯一的问题是 每当您悬停时 边框都会使内容 导航按钮 抖动 这是不应该的 另外 我的导航栏上已经有一个黑色的底部边框 因此无法更改它 HTML div ul li a
  • 关闭表单多选按钮单击 vuejs

    我有 vue 材质多选的 html 设计 我希望单击按钮即可关闭多选选项 Here is my design 我试过这个 methods selectAgents this refs selectAgent el children 0 cl
  • 数据库设计:循环依赖

    想象一下以下数据库 表 companies 包含字段 id name 和旗舰产品 ID 表 products 有字段 id name 和 company id 一家公司必须有一款旗舰产品 1 1关系 所有产品都有一个公司 1 N关系 当使用
  • 如何找出在哪个提交中添加了特定代码?

    我想知道我在哪个提交中添加了下面给出的代码 if getListView getChildCount 0 getActivity findViewById android R id empty setVisibility View VISI
  • 为什么我的 Delphi FindDialog 中的光标没有变成沙漏形?

    我只是用以下命令打开 FindDialog FindDialog Execute 在我的 FindDialog OnFind 事件中 我想将光标更改为沙漏以搜索大文件 这可能需要几秒钟 所以在 OnFind 事件中我这样做 Screen C
  • C# 如何判断单元格中的公式是否有错误

    在 Excel 公式中 您可以使用 ISERR A1 or ISERROR A1 在 VBA 宏中 您可以使用IsError sheet Cells 1 1 但是使用 VSTO Excel Addin 项目我没有在 Microsoft Of
  • Delphi XE3,丑陋的 StringGrid 边框

    与 Delphi 7 相比 为什么 XE3 中的 String Grid 边框如此不清晰 如何解决这个问题 Delphi 2010 之后所有的网格都是主题化的 要在网格上禁用新主题 您必须设置属性 在对象检查器中将 DrawingStyle
  • Z3:消除不关心的变量

    我有一个 test smt2 文件 set logic QF IDL declare const a Int declare const b Int declare const c Int assert or lt a 2 lt b 2 c
  • 动态更新 spring bean。是否可以?

    如果 spring bean 配置发生变化 有没有办法动态更新 Spring bean 例如 假设我有一个具有布尔属性的 spring beanx春豆有其价值true当应用程序启动时 所以 spring 创建了具有该属性的 beanx设置为
  • scikit-learn 中跨多列的标签编码

    我正在尝试使用 scikit learnLabelEncoder对 pandas 进行编码DataFrame字符串标签 由于数据框有许多 50 列 我想避免创建LabelEncoder每列的对象 我宁愿只拥有一件大的LabelEncoder
  • 如何在 Ubuntu 16.04 上设置 Docker + PhpStorm + xdebug

    我的问题是当我开始监听端口时 xdebug 不起作用 我认为 PhpStorm 无法与 xdebug 链接 我刚刚得到调试器面板变量不可用 看来 xdebug 没有正确设置 使用的软件及版本 Ubuntu 16 04 LTS Docker
  • iOS 64 位 @try {... } @catch {...} 不起作用

    我有一个非常特殊的问题 最近 我向我的 iOS 项目 arm64 添加了 64 位支持 从那时起 我开始收到内部代码段未捕获的异常 try catch 我使用 Crashlytics 进行崩溃报告 我设法在应用程序中的任何位置使用以下代码行