我正在使用蓝牙心率监测器,我按照https://www.raywenderlich.com/52080/introduction-core-bluetooth-building-heart-rate-monitor
的代码进行操作我现在让应用程序运行良好。在这个相同的应用程序中,我有几个其他视图控制器,做一些其他的事情,如登录页面和简单的"关于我们"页。我遇到的问题是,当回到包含实际心率监视器的视图控制器时,监视器位于0并且不会更新值。
我将恢复代码和代理:
-(void)centralManager:(CBCentralManager *)central willRestoreState:(NSDictionary *)state {
NSLog(@"willRestoreState called");
self.polarH7HRMPeripheral = [state[CBCentralManagerRestoredStatePeripheralsKey] firstItem];
self.polarH7HRMPeripheral.delegate = self;
}
中央经理被宣布如下:
CBCentralManager *centralManager =[[CBCentralManager alloc] initWithDelegate:self queue:nil options:@{ CBCentralManagerOptionRestoreIdentifierKey:@"myCentralManagerIdentifier" }];
当回到视图控制器时,我注意到没有调用willRestoreState
。
我迷失了下一步的目光。任何人都可以帮忙吗?提前谢谢。
答案 0 :(得分:1)
如果CBCentralManager
的对象被解除分配,则此方法将无效,因为这是CBCentralManager
的委托方法。
要使其正常工作,您必须重新初始化CBCentralManager
的对象,以便获得心率。
喜欢这个
self.hrCBManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];