我将如何附加此二进制字符串
111000111000111111000111000111
到包含NSMutableData
的{{1}}对象
(png
)
答案 0 :(得分:1)
您需要将字符串解析为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
会返回不可变数据,因此您需要获取该数据的可变副本。
答案 1 :(得分:0)
查看NSMuteableData方法appendBytes:length:
你必须将你的位转换为字节,如@Tommy所说。