我有 NSData 对象存储数据(非字符/非 ascii)。我试图将它放入一个数组而不将其解释为字符或 ascii。我知道这个问题之前已经被问过几次了,但是在这种情况下,发布的解决方案都没有对我有用。我试图避免使用属性列表,这是大多数答案所建议的。我已经尝试将 NSData 转换为 NSString,然后将字符串存储在数组中,但是当然,无论我使用什么编码,在将其放入字符串后它都会被解释为字符。例如,其中一个 NSData 包含 value 2c
,当我将其放入字符串时,它被解释为,
. 有谁知道我如何将原始数据以原始状态存储在 NSArray 中?也许通过将数据存储在用户默认值中,然后以某种方式将默认值存储在数组中?我不知所措。
这是一些可能相关的代码:
NSData *receivedData = [bleDevice readData];
NSString *receivedDataString = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding];
[dataArray insertObject:receivedDataString atIndex:0];
当我打电话时:
[dataArray insertObject:receivedDataString atIndex:0];
它将存储类似2c
ad a 的东西,
。
但是,当我尝试插入原始数据时,例如:
[dataArray insertObject:receivedData atIndex:0];
它根本不会存储任何东西。没有警告,没有错误。我将 NSLog 数组,它为空。