【发布时间】:2022-01-06 23:29:02
【问题描述】:
在 Xcode 12.3 中,CoreBluetooth.CBService.peripheral 在 Objective-c 中定义为:
@property(assign, readonly, nonatomic) CBPeripheral *peripheral;
更新:这是在 Xcode 12.3 中对上述内容的快速翻译:
unowned(unsafe) open var peripheral: CBPeripheral { get }
在 Xcode 13.0 中,CBService.peripheral 在 swift 中定义为:
weak var peripheral: CBPeripheral? { get }
Apple's documentation 声明这个 API 从 iOS5 开始就存在并且没有任何变化。但是在 Xcode 13 中,变量显然是可选的。 (并且它在 Xcode 12.3 中不是可选的,因为它缺少属性 nullable。)
修复相对容易(例如service.peripheral -> service?.peripheral) - 但它使得 Xcode 12.3 和 13.0 无法使用相同的代码。我想知道这里是否有一些我遗漏的细微差别?
【问题讨论】:
标签: swift objective-c xcode core-bluetooth