2016-09-07 91 views
0

我工作藍牙心臟監測儀上的藍牙核心不會恢復,我跟着從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不被稱爲。

我迷路了,到哪裏接下來看看。任何人都可以幫忙嗎?提前致謝。

+1

在一個視圖控制器你不應該把你的藍牙對象。把它放在另一個沒有被釋放的類中 – Paulw11

回答

1

如果CBCentralManager的對象被取消分配,則此方法將不起作用,因爲這是CBCentralManager的委託方法。

爲了使它工作,你必須重新初始化的CBCentralManager的對象,這樣你會得到的心臟速率。

像這樣

self.hrCBManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];