gpt4 book ai didi

ios - CBPeripheralManager 未上电

转载 作者:可可西里 更新时间:2023-11-01 03:52:10 24 4
gpt4 key购买 nike

我一直收到一个错误,说我的 CBPeripheralManager 没有开机,但在我的代码中我觉得我执行了这个。这是我的代码:

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

// Start up the CBPeripheralManager
_peripheralManager = [[CBPeripheralManager alloc] initWithDelegate:self queue:nil];
// Start up the CBCentralManager

// And somewhere to store the incoming data
_data = [[NSMutableData alloc] init];
}

/** Required protocol method. A full app should take care of all the possible states,
* but we're just waiting for to know when the CBPeripheralManager is ready
*/
- (void)peripheralManagerDidUpdateState:(CBPeripheralManager *)peripheral {

if (peripheral.state == CBPeripheralManagerStatePoweredOn) {

// We're in CBPeripheralManagerStatePoweredOn state...
NSLog(@"self.peripheralManager powered on.");

// ... so build our service.

// Then the service
CBMutableService *transferService = [[CBMutableService alloc] initWithType:[CBUUID UUIDWithString:TRANSFER_SERVICE_UUID] primary:YES];

// And add it to the peripheral manager
[self.peripheralManager addService:transferService];
}
}

然后我调用我的外围设备开始使用 IBAction 按钮做广告:

- (IBAction)advertise:(id)sender {
[self.peripheralManager startAdvertising:@{ CBAdvertisementDataServiceUUIDsKey : @[[CBUUID UUIDWithString:TRANSFER_SERVICE_UUID]] }];
[self.peripheralManager startAdvertising:@{ CBAdvertisementDataTxPowerLevelKey : @(YES)}];
}

最佳答案

您需要将对 CBPeripheralManager 的所有调用包装在状态检查中,以防止出现这些警告。由于您稍后只是在不确定的时间调用广告,因此您需要确保您的 peripheralManager 仍然通电并准备就绪。

- (IBAction)advertise:(id)sender
{
if(self.peripheralManager.state == CBPeripheralManagerStatePoweredOn)
{
//Now you can call advertise
}
}

关于ios - CBPeripheralManager 未上电,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20601927/

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