我将如何附加这个二进制字符串
111000111000111111000111000111
到包含 png
的 NSMutableData
对象
(NSMutableData *dataForPNGFile = UIImagePNGRepresentation(p.Image);
)
最佳答案
您需要将字符串解析为 NSData
,然后附加它。
我不知道任何内置的东西,所以例如
NSMutableData *data = [NSMutableData dataWithLength(string.length+7)/8];
uint8_t *mutableBytes = (uint8_t *)data.mutableBytes;
for(NSUinteger index = 0; index < string.length; index++)
{
unichar character = [string characterAtIndex:index];
mutableBytes[index >> 3] <<= 1;
if(character == '1') mutableBytes[index >> 3] |= 1;
}
if(string.length&7)
mutableBytes[string.length >> 3] <<= (7 - (string.length&7));
因此,假设您的源字符串只有 1 和 0,它是从最高有效数字到最低有效数字写入的,并且它是面向字节而不是面向单词的。
此外,UIImagePNGRepresentation
返回不可变数据,因此您需要获取该数据的可变副本。
关于ios - 将二进制字符串附加到 NSMutableData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12411408/