gpt4 book ai didi

swift - CBCentralManagerDelegate didRetrievePeripherals 未找到

转载 作者:行者123 更新时间:2023-11-30 11:41:12 25 4
gpt4 key购买 nike

我正在尝试在部署目标为 10.12 的 MacOS 上的 Swift 中实现 Apple 用 Objective-C 编写的示例代码。示例可以在这里找到以供引用:Heart Rate Monitor

在实现时,我遇到了 CentralManager: didRetrievePeripherals 回调无法实现的问题。我已经检查了我的 ViewController 实现的 CBCentralManagerDelegate 和 CBPheripheralDelegate 协议(protocol),但它们都不包含这样的方法。我能找到的唯一方法是:

func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: Error?)
func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral)
func centralManager(_ central: CBCentralManager, willRestoreState dict: [String : Any])
func centralManager(_ central: CBCentralManager, didFailToConnect peripheral: CBPeripheral, error: Error?)

我不太确定这里出了什么问题。我检查了 Apple 的 Objective-C 版本,并检查了那里实现的两个委托(delegate),但在协议(protocol)定义中没有看到任何表明我可以实现以下功能的内容:

- (void)centralManager:(CBCentralManager *)central didRetrievePeripherals:(NSArray *)peripherals
{
...
}

但是他们已经在 CBCentralManagerDelegates 集和项目构建下实现了这一点,没有出现问题。这怎么可能?

我的实现引用如下:

import Cocoa
import CoreBluetooth
import QuartzCore

class ViewController: NSViewController, CBPeripheralDelegate, CBCentralManagerDelegate {

var manager: CBCentralManager?
var peripheral: CBPeripheral?
var autoconnect = true
let arrayController: NSArrayController = NSArrayController()
var heartRateMonitors = NSMutableArray()
let scanSheet: NSWindow = NSWindow()

//MARK: IBOutlets
@IBOutlet weak var connectButton: NSButton!
@IBOutlet weak var indicatorButton: NSButton!
@IBOutlet weak var progressIndicator: NSProgressIndicator!


override func viewDidLoad() {
super.viewDidLoad()

// Do any additional setup after loading the view.


manager = CBCentralManager(delegate: self, queue: nil)
if autoconnect {
startScan()
}
}
...
}

谢谢

最佳答案

来自Apple changelog我们可以看到,centralManager: didRetrievePeripherals 方法在 iOS 9 中已被删除。因此,如果您使用带有最新 SKD 的 xcode,则该方法不会包含在其中。

关于swift - CBCentralManagerDelegate didRetrievePeripherals 未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49275649/

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