gpt4 book ai didi

ios - swift 2.0 : Initialize a CBCharacteristic?

转载 作者:行者123 更新时间:2023-11-28 11:15:44 29 4
gpt4 key购买 nike

我正在使用 CoreBluetooth 框架制作一个应用程序,我最近将它移植到 swift 2.0。在我的代码中,我有一个全局变量,它是一个 CBCharacteristic,在 swift 1.2 中我可以这样做:

var bob:CBCharacteristic = CBCharacteristic()

但现在它给我的错误是 CBCharacteristic 的 init() 函数已被显式隐藏,因此我无法对其进行初始化。有什么办法可以解决这个问题吗?

最佳答案

CBCharacteristic 的实例只能通过服务发现过程检索。

在您的 Swift 1.2 代码中,您分配了一个“空”CBCharacteristic 只是为了让编译器满足关于未初始化变量的要求,但是如果您尝试使用 就会遇到运行时问题bob 在分配“真实的”CBCharacteristic 之前。

Swift 旨在更轻松地生成“安全”代码,这些代码不会因不正确使用类型而出现细微的运行时问题。直接实例化 CBCharacteristic 的实例是没有意义的,在 Swift 2.0 中,您被主动阻止这样做。

如果您的 CBCharacteristic 是一个属性,那么它应该被声明为可选的,因为在发现特征之前它可能没有值

var bob:CBCharacteristic?

或者,如果您确定您的代码在设置之前不会尝试访问 bob -

var bob:CBCharacteristic!

第一个将确保您在使用它之前编写代码来解包可选,第二个将在设置之前使用它时给出运行时错误 - 这两者都比潜在难以调试的问题更可取你本来可以简单地引用一个“空”CBCharacteristic

关于ios - swift 2.0 : Initialize a CBCharacteristic?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31949303/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com