如何在 Swift 中检查 launchOptions?

2024-01-31

我在这里很困惑 - 我正在尝试检测我的应用程序是否从 LocalNotification 启动。但我所有的代码都被破坏了。

func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {
    var firstWay = launchOptions.objectForKey(UIApplicationLaunchOptionsLocalNotificationKey)
    var secondWay = launchOptions[UIApplicationLaunchOptionsLocalNotificationKey]
    return true
}

这两个都失败并显示消息

"unexpectedly found nil while unwrapping an Optional value"

我确信我在这里做错了一些非常基本的事情。有什么指点吗?


您正在展开参数中的 launchOptions 字典,该字典通常为 nil。尝试解开 nil 值会导致崩溃,因此您需要在使用尾随感叹号解开它之前检查它是否不是 nil。正确的代码如下:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
    if let options = launchOptions {
       // Do your checking on options here
    }

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

如何在 Swift 中检查 launchOptions? 的相关文章

随机推荐

  • 为什么 C# 方法不返回值?

    很容易理解为什么method 返回一个值 但我无法理解不返回值的方法的概念 static void PrintName string firstName string lastName Console Writeline firstName
  • 使用 nltk 从德语文本中提取单词

    我正在尝试从德语文档中提取单词 当我使用 nltk 教程中描述的以下方法时 我无法获取具有特定于语言的特殊字符的单词 ptcr nltk corpus PlaintextCorpusReader Corpus words nltk Text
  • 使用 csv 阅读器在文本文件中保留双引号

    您好 我有一个带有字符串的文本文件 你好 foo 酒吧 我想将其分成一个列表 hello foo bar 有什么办法可以实现这个目标吗 我现在正在尝试这个 for line in sys stdin csv file StringIO St
  • 如何为 Xcode 构建和编译 PJSIP,使用示例代码 IPJSUA 进行测试?

    如何使用xCode构建和编译PJSIP并运行示例代码IPJSUA 首先 您需要打开终端 终端可以在应用程序 gt 实用程序 gt 终端中找到 打开终端后 请确保指向桌面 以便更轻松地获取数据文件夹 只需输入 光盘桌面 恭喜 您已经进入桌面了
  • Yii2:仅对致命错误使用错误处理程序或指定处理的错误类型

    Yii2有它自己的错误处理程序 http www yiiframework com doc 2 0 guide runtime handling errors html 它将所有非致命 php 错误转换为可捕获的异常 是否可以仅使用它来处理
  • Javascript画布碰撞侧面检测

    嘿 我正在尝试获取画布中两个对象碰撞的一侧 这是我用于碰撞检测的内容 但它仅检查碰撞 而不检查特定的侧面 其中 o1 和 o2 是具有属性的对象 x X 轴上的位置 y Y 轴上的位置 w 矩形的宽度 h 矩形的高度 var collide
  • SQL Server 使用没有主键的聚集索引创建表

    是否可以从 SQL Server 2008 中的非主键创建表语句创建聚集索引 这样做的目的是针对 SQL Azure 中的表 因此我不能选择先创建表 然后在表上创建聚集索引 Edit 显然是 FluentMigrator 导致了我的问题 它
  • Dynamics CRM 2016 修改活动视图列表

    我对 MS Dynamics 非常陌生 我正在使用 Dynamics CRM 2016 我需要在活动页面中删除有关我未使用的实体的视图 例如营销活动响应 营销活动活动等 我在解决方案中的活动实体的视图列表中没有看到它们 所以我无法从那里删除
  • 如何根据ID获取文档下的所有数据

    目前我正在学习 Firestore 并努力编写查询 我想定位 giMXcFmLUxfCaCmyYo0TJFeEHBL2 文档下的所有字段 我的查询如下所示 if userId firebase firestore collection us
  • iOS 设备快速旋转 180 度会导致相机视图颠倒

    我已经实现了下面的代码来更改方向AVCaptureVideoSession基于UIInterfaceOrientation AVCaptureVideoOrientation interfaceOrientationToVideoOrien
  • 谷歌表格复制拖动公式

    使用复制拖动时如何从右侧复制紫色数字 它的工作原理应该是什么 B2 将是 K1 对于每个下一个单元格使用 INDEX QUERY FLATTEN INDIRECT K1 O Limit 1 offset SUM COUNTIF INDIRE
  • 如果请求 List,为什么我不能返回 List? [复制]

    这个问题在这里已经有答案了 我明白 如果S是一个子类T 那么一个List
  • 与maven父模块中Checkstyle和PMD配置的差异

    我有一个带有 Maven 的 Java 应用程序 其结构如下 parent pom xml child pom xml analyzers pmdrules xml checkstyle xml 我已经在父 pom xml 中配置了 PMD
  • 如何找到.net框架的应用程序?

    我正在开发扫描仪类型的应用程序 它采用不同的 C 代码库作为输入 我想知道在哪个 net 框架版本 1 1 2 0 3 5 4 0 特定代码库中构建 有人可以向我提供代码来检查代码库的 net 框架版本吗 我可以从 csproj 文件读取代
  • 如何在 Angular 库中添加引导程序

    我的版本是 1 npm v6 14 12 2 node v10 24 1 3 angular cli v8 0 2 我使用以下命令创建了一个库 Step 1 ng new my workspace create application fa
  • Twitter Bootstrap 模式阻止文本输入字段

    我正在尝试使用模式作为弹出帮助窗口 我将背景设置为 无 当模式打开 没有背景 时 原始 页面中的输入字段无法聚焦 其他输入类型 示例中的复选框和按钮 效果很好 任何想法 My code div class container div
  • 如何在as3中找到ip地址?

    我正在尝试使用 adobe Flash professional cs5 中的 as3 来查找 IP 地址 我不知道该怎么做 是否可以使用as3找到IP地址 不 如果不使用任何服务器端技术 AS3 是不可能实现这一点的 您可以使用加载程序并
  • 运行时可调用包装器 (RCW) 范围 - 进程还是应用程序域?

    引用非托管 COM 对象时 运行时可调用包装器 RCW 的范围是什么 根据文档 运行时恰好创建一个 RCW 对于每个 COM 对象 无论 存在的参考文献数量 那个物体 如果我必须 猜测 这个解释应该意味着 每个进程一个 但真的是这样吗 任何
  • Laravel include 导致错误:Method Illuminate\View\View::__toString() 不得抛出异常

    我在 laravel 中包含一个文件 它向我抛出以下错误 Method Illuminate View View toString must not throw an exception 我已将文件包含在内 include users op
  • 如何在 Swift 中检查 launchOptions?

    我在这里很困惑 我正在尝试检测我的应用程序是否从 LocalNotification 启动 但我所有的代码都被破坏了 func application application UIApplication didFinishLaunching