我NSLogging我從外部來源收到的NSData流,但由於某種原因,它不斷打破自己40個字符塊,一旦它擊中40個字符時去一個新的行。我試圖通過流解析,並在特定的地方挑選出值,所以它一直在跳下一條線,這是一個巨大的麻煩。有誰知道如何防止這種行爲?這裏是我的NSLog的例子:NSData拆分塊
2013-07-17 14:44:32.638 Test App
[4041:907] data equals <3e2c042c 31333037 31373032 34302d30 372c0100>
2013-07-17 14:44:32.698 Test App
[4041:907] data equals <00000000 2c020000 0000002c 03000000 00002cff>
2013-07-17 14:44:32.758 Test App
[4041:907] data equals <00000000 00>
編輯:對於相關的代碼,我使用的是第三方BLE庫,所以我想它不會有太大用處。這基本上是相關的代碼只有一行:
NSData *data = [BLEdevice readReceivedBytes];
NSLog(@"data equals %@", data);
我給了羅布的建議了一槍,這是結果:
2013-07-17 15:21:35.399 Test App[4060:907] data equals <3e2c012c 31333037 31373033 32312d30 372cff00>
2013-07-17 15:21:35.401 Test App[4060:907] data length equals =20
2013-07-17 15:21:35.458 Test App[4060:907] data equals <00000000>
2013-07-17 15:21:35.460 Test App[4060:907] data length equals =4
應該流回所有在只有一條線路,而不是最多40個字符。也許這是一個BLE的事情。
如果你顯示了一些相關的代碼,這將有所幫助。 – rmaddy
NSData是什麼?你如何得到你的流?你有緩衝限制嗎?你的回調是什麼時候被調用的? – Larme
@Larme它是第三方BLE設備。我實際上確實放了一個緩衝區限制,它的輸入和輸出各有512個。 – John