NSString代替NSData可能,后果是什么?

时间:2012-09-07 04:49:50

标签: objective-c ios

假设我正在存储ASCII流,比如0x0a0b0c00。如果我将数据存储在NSData实例与NSString中,会对数据产生什么影响?数据会转换成其他内容吗?我有点困惑,因为他们都是持有完全相同的缓冲区。

1 个答案:

答案 0 :(得分:3)

NSData是一个容器,顾名思义就是存储原始二进制数据。 NSData对二进制数据的格式进行无假设。它可以是文字,图像,音频等。

NSString 将数据解释为具有给定编码的文本:可以是ASCII,Unicode等。在大多数情况下,NSString会将字节复制到其内部数据结构以存储原始二进制文件。

如果不是文本,请使用NSData。代码更清楚,知道正在管理什么,并避免必须打击字符串编码。