2012-03-05 21 views
0

我不熟悉iPhone上的藍牙編程,我想在兩臺iOS設備之間建立PeerToPeer藍牙連接。我跟着步驟在本教程中iOS藍牙編程 - 在兩臺iPad之間建立p2p時出現故障

http://www.devx.com/wireless/Article/43502/0/page/1

,一切都發生了,因爲它應該,直到我拿到檢測到另一個設備時的接受或拒絕的選擇。

只要我選擇接受,應用程序就會在這兩個設備上崩潰。和示出的錯誤消息是這樣的: -

wait_fences:未能接收應答:10004003 2012-03-05 15:40:25.809藍牙[204:707] - [視圖控制器會話:didFailWithError:]:無法識別的選擇發送to instance 0x367fe0 2012-03-05 15:40:25.811 Bluetooth [204:707] *由於未捕獲的異常'NSInvalidArgumentException',原因:' - [ViewController session:didFailWithError:]:無法識別的選擇器發送到實例0x367fe0'

有人知道發生了什麼事嗎?

在此先感謝!

+0

發佈您的部分代碼。你在執行didFailWithError嗎?你爲什麼遵循該教程而不是閱讀蘋果提供的文檔和示例? – 2012-03-05 10:42:55

+1

你有沒有實現GKsessionDelegate方法 - (void)會話:(GKSession *)會話didFailWithError:(NSError *)錯誤;在你的班級? – priyanka 2012-03-05 10:46:09

+0

From comments:如果用戶無法成功構建並運行,則需要導入GameKit框架(右鍵單擊框架文件夾>現有框架> GameKit.framework),並用#import替換.h中的空#import語句。刪除.m中的空#import。 – 2012-03-05 10:53:31

回答

0

只需複製從下面評析在你發佈的鏈接粘貼此:

如果人們不能夠建立併成功運行,你需要導入GameKit framework(右擊frameworks文件夾>現有框架>的GameKit。框架)

添加到BluetoothViewController.h文件:

#import "GameKit/GKSession.h" 
#import "GameKit/GKPeerPickerController.h" 
0

發現了問題。犯了一個相當愚蠢的錯誤!

伊夫寫入的方法如下

- (void)peerPickerController:(GKPeerPickerController *)picker 
       didConnectPeer:(NSString *)peerID 
        toSession:(GKSession *) session { 

和在它我建立我想如果建立了連接第一我會檢查該應用接收經由藍牙數據使用

[session setDataReceiveHandler:self withContext:nil]; 

和然後考慮數據傳輸。但事實證明,你不能這樣做,數據處理程序已經設置,我沒有實現它自己。當我確實寫了,但它工作正常!

希望這個採訪人能夠承擔這樣明顯的錯誤!