我正在使用 Swift 完全开发一个tvOS应用程序。
在AppDelegate.swift
,我尝试在UUID
下打印willFinishLaunchingWithOptions
。
但是,错误消息显示为fatal error: unexpectedly found nil while unwrapping an Optional value
。
该应用程序实际上功能齐全,之前运行良好。我重置模拟器后发生了这个错误。
以下是我UUID
的方式。
let UUIDValue = UIDevice.current.identifierForVendor!.uuidString
let newuuid = UserDefaults.standard.object(forKey: "uuid") as? String
print ("This device uuid is " + newuuid!) // error message happens here
我相信每个设备都应包含 UUID ,但它是如何发生的?
答案 0 :(得分:2)
您正试图从newuuid
获取UserDefaults
:
let newuuid = UserDefaults.standard.object(forKey: "uuid") as? String
但重置模拟器后UserDefaults
中的条目为零,并且没有为键设置值" uuid"爱好。
这没有多大意义,但解决了这个问题:
let UUIDValue = UIDevice.current.identifierForVendor!.uuidString
UserDefaults.standard.setValue(UUIDValue, forKey: "uuid") // add entry in UserDefaults
let newuuid = UserDefaults.standard.object(forKey: "uuid") as? String
print ("This device uuid is " + newuuid!)
答案 1 :(得分:1)
UUID仅针对真实设备生成,而不针对iOS模拟器生成,因为硬件设备已在Apple网络中注册以访问设备令牌。
答案 2 :(得分:0)
模拟推送的UDID和设备令牌,我们可以发送推送 到模拟器。它们仅用于发展前景。 UDID保持不变 改变模拟器。消息,应用程序链接,邮件也一样 模板可以在模拟器上看到bur无法测试它。每次重新安装应用程序时都会更改.UDID