假设我正在存储ASCII流,比如0x0a0b0c00
。如果我将数据存储在NSData
实例与NSString
中,会对数据产生什么影响?数据会转换成其他内容吗?我有点困惑,因为他们都是持有完全相同的缓冲区。
答案 0 :(得分:3)
NSData是一个容器,顾名思义就是存储原始二进制数据。 NSData对二进制数据的格式进行无假设。它可以是文字,图像,音频等。
NSString 将数据解释为具有给定编码的文本:可以是ASCII,Unicode等。在大多数情况下,NSString会将字节复制到其内部数据结构以存储原始二进制文件。
如果不是文本,请使用NSData。代码更清楚,知道正在管理什么,并避免必须打击字符串编码。