从 NSExpression 捕获 NSInvalidArgumentException

2023-12-09

在我的代码中,我将字符串评估为数学表达式,例如:

NSString *formula=@"9*7";
NSExpression *expr =[NSExpression expressionWithFormat:formula];
NSLog(@"%@", [[expr expressionValueWithObject:nil context:nil]intValue]);

上面的工作正常,但我将处理来自用户的动态输入,因此当用户输入错误数据时我需要能够捕获异常,因此我需要能够在以下情况下捕获异常:

NSString *formula=@"9*"; //note the deliberately invalid expression
NSExpression *expr =[NSExpression expressionWithFormat:formula];
@try {        
    [[expr expressionValueWithObject:nil context:nil]intValue];
}
@catch (NSException *exception) {
    NSLog(@"Exception");
}
@finally {
    NSLog(@"Finally");
}

但是,当我运行此代码时,我得到:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无法解析格式字符串“9* == 1””

有什么方法可以捕获这个异常吗?或者有什么方法可以在我传递表达式之前测试它是否有效?

Thanks!


当前代码未捕获此异常的原因是该异常是从此行引发的:

NSExpression *expr =[NSExpression expressionWithFormat:formula];

您需要将此行移至@try block.

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

从 NSExpression 捕获 NSInvalidArgumentException 的相关文章

  • 从服务器实时更新的 iOS 应用程序:Socket(使用流)还是 Apple 推送通知服务?

    我正在尝试制作一个 iOS 5 应用程序 该应用程序具有来自服务器的实时信息 它只会在应用程序运行时使用这些 为了使其实时且无需轮询 我一直在评估两种设计路线 创建从应用程序到服务器的套接字 并通过流交换信息 Pros 相对简单 不涉及第三
  • 如何在 iOS 上删除配对的蓝牙设备?

    我希望我的应用程序可以删除配对的蓝牙设备 因为如果设备与 iPhone 配对 则该设备无法用于其他设备 我尝试了 CBCentralManager cancelPeripheralConnection 但它不起作用 他们仍然配对 或者还有其
  • 核心图:如何隐藏图、轴和标签?

    我有一个图表 其中 Y 轴和 X 轴与主图一起绘制在默认绘图空间上 然后我有单独的辅助绘图空间 每个辅助绘图都有自己的 Y 轴 所有绘图的 X 轴都相同 我正在实现按钮来打开和关闭辅助图 我希望它基本上包括整个绘图空间 绘图 自定义 y 轴
  • 具有硬件集成的 iOS 应用程序

    我想开发一个使用外部硬件插件的 iOS 应用程序 有点像 Squarehttps squareup com https squareup com 但是我在苹果的文档中找不到任何参考资料 有人能指出我正确的方向吗 如果您想使用 iPod 连接
  • Xcode 6 iOS 8 UIImage imageNamed 来自捆绑包问题

    我使用 iOS 7 1 构建我的项目 并尝试使用存储在 images cars car 1 png 中的图像加载 UIImage 视图 所有图像都位于项目树中的图像文件夹中 如下图所示 所以它非常适合 iOS 7 1 和 Xcode 5 但
  • Swift 3:将 UIButton 扩展添加到 ViewController

    我是 iOS Swift 的初学者 尝试创建一个没有 Storyboard 的简单应用程序 我创建了一个UIButton扩展名 我想在我的视图中添加一个简单的按钮 稍后将设置约束 不幸的是 该按钮不可见 如果有人帮助我 我将不胜感激 谢谢你
  • 通过 HTTP 代理进行 iOS XMPP 聊天

    我有一个 iPhone 应用程序 可与 2 项服务配合使用 通过 http 使用 REST 服务 使用 AFNetworking 通过 TCP 进行 XMPP 聊天 使用 XMPPFrameworkhttps github com robb
  • 函数“FBSDK_NOT_DESIGNATED_INITIALIZER”的隐式声明在 C99 中无效预期“)”

    我正在使用适用于 iOS 4 6 0 的 Facebook SDK 今天将 cocoapods 更新到 0 38 2 后遇到了上述错误 我不确定这个错误与 cocoapods 有什么关系 Error screenshot 我遇到过同样的问题
  • iOS 应用程序中的谷歌地图实时交通状况?

    如何使用 google 地图 sdk 或 api 在 ios 应用程序中添加当前交通状况 如下图所示 有 javascript api 但我没有找到任何适用于 iOS 应用程序的解决方案 只需在 iOS SDK 中添加一行代码即可启用或禁用
  • 在 iOS safari 中禁用选择上下文菜单

    我想禁用在 iOS Safari 网络浏览器 中选择特定文本后出现的默认上下文菜单 那可能吗 这是可能的 请参阅这个例子 http jsfiddle net z9ZNU 基本上 重要的部分是设置正确的 css 属性 body webkit
  • 在 Alamofire 中快速发送 GET 请求中的 json 对象

    我正在尝试执行一个绑定了 json 对象的 GET 请求 这就是我生成 JSON 对象的方式 let jsonObject String AnyObject ean code type match value 16743799 然后我执行了
  • 如何在文本末尾添加按钮,如 Facebook 的“继续阅读”?

    当状态帖子太长时 Facebook 应用程序会剪切文本并在末尾添加 继续阅读 它如何知道在哪里剪切文本并添加 继续阅读 不仅仅是向 textView 或标签添加按钮 而是如何剪切字符串 例如 在下图中 我将行数限制为 7 我可以在 text
  • 如果您查看内部,nib 文件到底是什么样子的?

    我刚刚学习 nibs 和 swift 并对某些东西感到好奇 我知道 如果您有一个 main storyboard 文件 则首先加载根视图控制器的笔尖 然后加载该视图控制器下可能分层存在的任何视图 但是 我想知道一些事情 当他们说笔尖已 加载
  • 我可以使用 NSDateFormatter 将此日期字符串转换为 NSDate 吗?

    我有这个字符串 2010 08 24T16 00 00 05 00 我想从中提取时间部分 即 16 00 并将其转换为 12 小时等效值 即下午 04 00 我正在尝试使用 NSDateFormatter 来完成此任务 但它不起作用 NSD
  • 在 iPhone 和 Cocos2d 中从类类型(+)方法访问对象?

    我有一个类方法 在其中创建并返回类对象 但我想访问同一类中该对象的某些属性 作为一个类方法 我无法在 h 文件中声明该变量 然后在其他方法中访问它 以下是代码 我如何在下面的实例方法中访问 backsprite 或 hudlayer 对象的
  • Xcode 本地化设置中没有加号或减号按钮

    我需要在两天内翻译 iOS 应用程序 但我的 XCode 版本 4 4 和 4 5 Developer Preview 都没有给我添加其他语言的选项 我只能选择单击 Make localized 但我只能选择英语 选择它后 Xcode 中的
  • 获取 Swift 子目录中资源的所有 URL

    我正在尝试为 iOS 应用程序的子目录中的所有资源创建 URL 数组 我似乎无法到达正确的路径 即使我不知道名称 我也希望能够检索 URL 即我不想将文件名硬编码到代码中 Below is a screen shot of the hier
  • 子视图控制器旋转方法未被调用

    Summary 我试图将子视图控制器添加到父视图控制器 并让父视图控制器通知子视图控制器旋转事件 但是 旋转消息不会转发到子视图控制器 这是默认行为 为什么这种默认行为没有发生 环境 iOS 7 XCode 5 OSX 10 9 Detai
  • SDWebImage 显示缓存中图像的占位符

    在 iOS 5 1 项目 iPad 中使用 SDWebImage 3 我们展示相当大的图像 700x500 并且我们有很多图像 1000 我们预取图像并缓存到磁盘 然后允许用户浏览它们 效果很好 除了当您浏览图像时 您总是会看到占位符显示一
  • Swift 3 和 Xcode8 - init 的使用不明确

    在我安装 Xcode 8 并将项目转换为 Swift 3 之前 以下行没问题 现在转换后看起来像这样 let valueData Data Data bytes UnsafePointer

随机推荐

  • 组合框控件模板下拉按钮

    我想知道是否有人有一个示例 说明如何设置组合框的样式 模板以仅在默认初始状态下显示按钮 有点像功能区栏的 DropDownButton 库 我只希望用户能够单击按钮并列出组合框项目 做出选择后 它不会将所选项目保存在文本字段中 因为没有文本
  • h2o 模型列出每个特征的 dtypes

    有没有一种方法可以列出现有 h2o 模型的每个特征的预期数据类型 而无需查看训练数据 类似于的输出h2o frame types 但不查看训练数据 只查看模型对象 在本例中 我有一个已保存的模型文件 可以导入回 h2o 的通用类型 而不是
  • HTTPS 通信失败 ABAP

    我正在开发一个应连接到两个 Web 应用程序的应用程序 第一个 Web 应用程序已完成 http example com 不幸的是 第二个 Web 应用程序使用 HTTPS https example com 抛出这个错误 Http Com
  • Android java使用Comparable自定义排序

    Override public int compareTo final myRow another final int BEFORE 1 final int EQUAL 0 final int AFTER 1 if this another
  • 如何使用 matplotlib 在单个页面上绘制多个绘图?

    我编写了一次打开 16 个数字的代码 目前 它们都作为单独的图表打开 我希望他们在同一页面上打开所有内容 不是同一个图表 我想要在单个页面 窗口上显示 16 个独立的图表 此外 由于某种原因 numbins 和 defaultreallim
  • 按类别名称搜索

    当我尝试按类别名称进行搜索时 它什么也没有返回 例如 我有有机 独特 体育等类别 在搜索中我输入独特 但我没有得到任何结果 不幸的是 Magento 的默认搜索功能是产品搜索 并且仅限于该范围 当您搜索 Unique 时 它会查找产品名称
  • Reporting Services 表达式在某些情况下会出错

    在报告的摘要行中计算平均值时出现错误 我的表情是这样的 IIF SUM Fields column3 Value gt 0 Format DateAdd s SUM Fields column4 Value SUM Fields colum
  • 在pygame中检查歌曲是否播放完毕

    有什么方法可以判断 pygame 中的歌曲是否已播放完毕 这是代码 from tkinter import import pygame root Tk pygame init def play pygame mixer music load
  • Visual Studio 2010 局部变量历史记录

    我正在调试一个具有多个嵌套循环的进程 这些循环会更改几个不同的局部变量 我可以通过一次迭代一次来观看这些内容 但这非常乏味 而且我正在忘记自己的位置 我根本没有时间每次都记下每个变量 有没有办法可以查看局部变量的历史记录 一个插件 如果没有
  • 在 xsl 变量中存储 html 标签

    抱歉 如果这是一个愚蠢的问题 但是可以在 xsl 1 0 变量中存储和检索 HTML 片段吗 例如
  • 在 Vagrant 配置期间使用 Sed 将行追加到文件

    我目前正在使用Vagrant设置运行 Ubuntu 的开发机器 我想在我的中添加几行 profile将目录添加到我的 PATH变量 使用sed 为此 我将这些行添加到我的机器中Vagrantfile config vm provision
  • 左值整型常量表达式是常量表达式吗?

    N4527 5 20 表达式常量 p3 An 积分常量表达式是整型或无范围枚举类型的表达式 隐式转换为纯右值 其中转换后的表达式是核心常量表达式 5 20 expr const p5 A 常量表达式是一个泛左值核心常量表达式 其值引用作为常
  • 为什么 Rust 不允许可变别名?

    Rust 不允许这种代码 因为它不安全 fn main let mut i 42 let ref to i 1 unsafe mut mut i as mut i32 let ref to i 2 unsafe mut mut i as m
  • 从给定 X 值的密度函数检索 Y 值

    给定一个简单的密度直方图和曲线 如下所示 如何检索给定 X 值的 Y 值 例如 y 值位于mean dat dat lt c 5 7 4 6 4 3 55 6 7 5 4 3 33 44 5 2 33 22 hist dat freq F
  • currentUser 返回 null

    我有一个使用 firebase auth 进行身份验证的反应应用程序 当一个人登录后 它会将他们重定向到书籍页面 这是提交登录处理程序 import auth firebase from firebase async function go
  • 如何使用 SMOTE 将合成数据集保存在 CSV 文件中

    我使用信用卡数据通过 SMOTE 进行过采样 我正在使用 geeksforgeeks org 中编写的代码 Link 运行以下代码后 它会显示类似以下内容 print Before OverSampling counts of label
  • 字符串周日期到冷融合日期

    我需要格式化一个字符串日期 如下所示 2021 W46 变成我可以在冷融合中使用的东西parseDateTime or dateFormat功能 W46在本例中是第 46 周 我尝试的是直接将该字符串放入parseDateTime and
  • Java并发——发布不可变对象(Java并发实践)

    在 Java Concurrency In Practice 一书中 作者指出 不可变对象可以通过任何机制发布 任何线程都可以安全地使用不可变对象 无需额外的同步 即使不使用同步来发布它们也是如此 这是否意味着以下习惯用法可以安全地发布不可
  • 在 Java 中使用 SWIG 处理返回指向结构数组的指针的 C 函数

    我试图找出需要进行哪些 SWIG 接口文件更改才能处理 getFoo 返回指向自定义结构数组 sender id t 的指针 没有任何特殊的 SWIG 接口代码 我只得到 Java 端的指针 如何将该指针转换为可以循环或迭代的对象 在 Ja
  • 从 NSExpression 捕获 NSInvalidArgumentException

    在我的代码中 我将字符串评估为数学表达式 例如 NSString formula 9 7 NSExpression expr NSExpression expressionWithFormat formula NSLog expr expr