我想弄清楚如何使某些回調觸發。 在外圍設備peripheralManager:central:didSubscribeToCharacteristic:
被正確調用,它發送一個數據塊(前兩個)到中心,如預期在peripheral:didUpdateValueForCharacteristic:error:
中接收數據。藍牙核心框架回調例程peripheralManagerIsReadyToUpdateSubscribers:不叫
現在剩下一塊應該根據Apple's test application在外設的回調peripheralManagerIsReadyToUpdateSubscribers:
中發送。
我已經測試和驗證,它在那裏工作得很好。這有點可疑,但根據文檔,只有當外圍管理器的updateValue:forCharacteristic:onSubscribedCentrals:
失敗時纔會調用它。
如何讓外設發送剩餘的塊?我可以爲你提供代碼,但它與我鏈接到的示例應用程序幾乎完全相同(我使用的是一組NSData塊而不是一個大的NSData),我更關心的是如何回調鏈作品以及不同選擇者需要採取的行動。
謝謝,我已經設法浸泡,我需要返回每次它不發送一個塊的回調觸發。 – MdaG
@MdaG是的,這在文檔中沒有很好的闡述,示例應用程序本身實際上顯示了非常糟糕的做法。 (將單一功能中的所有功能集中在一起)。我只是認爲,對於您獲得一些反饋意見,您認爲這樣做或多或少是正確的。 – allprog
因此,在一個具有多重特性的非平凡例子中,必須保持一個隊列集合,每個隊列都有一個隊列?或者可能是一個包含將數據與特性相關聯的字典的隊列? – Gorm