2017-10-18 409 views
0

所以我非常堅持使用BLE設備和它的數據。從BLE設備讀取數據時,數據存儲在數據對象中。現在對於這個例子,我將採取大紀元的時間,因爲這(應該)是一個容易的檢查。因此,Bluejay莢保存數據,當打印數據如下debugPrint("Epoch Time: \(data as NSData)")時,結果爲"Epoch Time: <869c0200>"。到目前爲止我認爲這麼好。當我複製值869c0200並將其放入Mac計算器(編程器模式)時,請進行字節翻轉,並與網站epochtimeconverter進行覈對。我在1970年得到了一個合理的日期。因爲它經常在死了電池後復位到1970年。我設置了一個斷點,並查看了我看到的一些事情的值。
_bytes UnsafeMutableRawPointer? (_rawValue = 0x00000001c04364b0)
_rawValue Builtin.RawPointer 0x1c04364b0 他們每個人給我一個不同的時間。有沒有人能夠一步一步地幫助我,我應該如何以正確的方式交換這些數據?iOS解釋BLE數據和字節swift 3

簡而言之:「我怎樣才能正確地從我的BLE設備讀取/操縱紀元時間?」

在此先感謝您的閱讀時間。

回答

1

你不能按照你想要打印的方式打印NSData。你必須將它轉換爲字符串(字節數組)。

例:

let yourDataByte = [UInt8](advertiseData as! NSData) 

let yourString = String(NSString(format:"%02X", Int(yourDataByte[0])))