假设我正在存储一个 ASCII 码流,比如 0x0a0b0c00
。如果我将数据存储在 NSData
实例中而不是 NSString
中,数据会发生什么变化?数据会被转换成其他东西吗?我有点困惑,因为它们都是包含完全相同内容的缓冲区。
最佳答案
顾名思义,NSData 是一个用于存储原始二进制数据的容器。 NSData 对二进制数据的格式不做任何假设。可以是文字、图片、音频等。
NSString 解释 数据为具有给定编码的文本:可以是 ASCII、Unicode 等。在大多数情况下,NSString 会将字节复制到其内部数据结构以存储原始二进制文件。
如果不是文本,使用 NSData。在代码中更清楚地了解正在管理的内容并避免与字符串编码作斗争。
关于objective-c - NSString 替代 NSData 可能,后果是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12311892/