0

我有兩個視圖:一個是中心TableView,其中顯示所有發現的設備,另一個是當用戶選擇連接到其中一個發現的設備時加載的一個detailView。iOS核心藍牙(LE):處理不同視圖時的應用程序崩潰

它的工作原理,直到以下幾點:

  • 發現設備
  • 連接到設備
  • 閱讀服務,特點和訂閱它們炭的的
  • 值被成功讀取和顯示detailView

當我現在通過「back」按鈕從detailView返回時 - 按鈕在回調函數

override func viewDidAppear(animated: Bool) { 
    if(!firstStart){ 
     tableView.reloadData() 
     println("appeared!") 
     discoverDevices() 
    } 

}

被調用,但在那之後我在一個EXC_BAD_ACCESS結束。我discoverDevices()函數如下:

func discoverDevices() { 
    println("discovering devices......") 
    centralManager.scanForPeripheralsWithServices(nil, options: nil) 
} 

似乎是在「centralManager.scanForPeripheralsWithServices(零,選項:無)」的一些錯誤 - 但只有後回調。從一開始,一切都很好。我必須在某處設置某個代表嗎?我無法弄清楚「EXC_BAD_ACCESS」 - 錯誤。

我是否必須重新初始化centralManager?我必須重新啓動嗎?

感謝您提前提供任何幫助。

親切的問候, Stevil

回答

0

我發現了這件事由我自己。問題是我不得不在主tableView中再次設置peripheral.delegate。現在一切都運行平穩。

也許這有助於其他新手。