我有NSData對象存儲數據(非字符/非ASCII)。我試圖把它放到一個數組中,而不會被解釋爲字符或ascii。我知道這個問題之前已經被問過幾次了,但是在這種情況下,沒有任何一個解決方案對我有效。我試圖避免使用屬性列表,這是大多數答案的建議。我已經嘗試將NSData轉換爲NSString,然後將該字符串存儲在數組中,但當然,無論我使用的編碼如何,它都會在將字符串放入字符串後解釋爲字符。例如,其中一個NSData包含值2c
,當我將它放入一個字符串時,它被解釋爲,
。有誰知道我可以如何將原始數據存儲在NSArray中?也許通過將數據存儲在用戶默認值中,然後以某種方式將默認值存儲在數組中?我很茫然。把NSData放入NSArray
下面是一些可能相關的代碼:
NSData *receivedData = [bleDevice readData];
NSString *receivedDataString = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding];
[dataArray insertObject:receivedDataString atIndex:0];
當我打電話: [dataArray insertObject:receivedDataString atIndex:0];
它將存儲像2c
廣告,
。
但是,當我嘗試插入原始數據,如: [dataArray insertObject:receivedData atIndex:0];
它不會存儲任何東西。沒有警告,沒有錯誤。我會NSLog數組,它是空的。
請發佈示例代碼。 NSArray包含指針,所以對象不應該被改變。 –
當然,只是更新它。 – John
'[dataArray insertObject:receivedData atIndex:0];'最肯定*將*將「receivedData」插入到「dataArray」中(只要兩者都存在)。 「receivedData」可以是任何類型的NSObject - 不必是字符串。如果數組在記錄時爲「空」,那麼數組本身永遠不會被創建。 –