【发布时间】:2021-03-11 01:50:18
【问题描述】:
我不确定为什么我在尝试打印时在可选选项上收到此 nil 错误。有人可以提供任何输入吗?我能够从 aplicationContext 输出值是没有意义的,但是当我尝试从 applicationContext["hearRate"] 获取值时,我得到了 nil。
func session(_ session: WCSession, didReceiveApplicationContext applicationContext: [String : Any]) {
print("didReceiveApplicationContext\n\t\(applicationContext)")
let hrValue = applicationContext["heartRate"] as? String
print(applicationContext["hearRate"])
print(hrValue)
heartRate.text = hrValue
}
console - output
2021-03-10 18:41:04.623716-0700 Trainer+[1824:759737] Metal API Validation Enabled
session active state
didReceiveApplicationContext
["heartRate": 00BPM]
nil
Optional("00BPM")
Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value: file Trainer_/ViewController.swift, line 57
2021-03-10 18:41:04.999001-0700 Trainer+[1824:759754] Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value: file Trainer_/ViewController.swift, line 57
更新 - 忽略错字,发现 IBOutlet 存在问题
func session(_ session: WCSession, didReceiveApplicationContext applicationContext: [String : Any]) {
print("didReceiveApplicationContext\n\t\(applicationContext)")
let hrValue = applicationContext["heartRate"] as? String
print(applicationContext["heartRate"])
print(hrValue)
//heartRate.text = hrValue
heartRate.text = "test"
}
2021-03-11 12:45:05.482464-0700 Trainer+[1873:817768] Metal API Validation Enabled
session active state
didReceiveApplicationContext
["heartRate": 91BPM]
Optional(91BPM)
Optional("91BPM")
Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value: file Trainer_/ViewController.swift, line 58
2021-03-11 12:45:05.887523-0700 Trainer+[1873:817966] Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value: file Trainer_/ViewController.swift, line 58
来自 watchconnectivity 的 func session(didReceiveApplicationContext) 正在按预期工作。我相信我的问题来自于我将 heartRate 标签移动到“视图容器”。我在移动标签的同时添加了 watchconnectivity,并认为它会起作用。
这可能需要一个不同的问题,不确定,我如何通过同时可见的多个视图控制器传递数据。由于我在 ViewController 上创建会话,所以我还不知道如何在不将 ViewController 的完整“自我”引用传递给 DetailViewController 的情况下将数据传递给其他视图控制器。来自 Java 和 PHP,我觉得这不是好的编码习惯。
我正在考虑扩展/委托和原型。我稍微了解它们,但我目前正在开发一个应用程序,我的主要目标是拥有一个工作原型。我会回来重构代码修复并修复任何漏洞。如果任何有经验的机构可以为我提供任何可靠的资源。厌倦了点击谷歌的下一页,因为我找不到我正在寻找的答案,哈哈。
【问题讨论】:
标签: swift dictionary viewcontroller applicationcontext