0

我将如何去附加这个二进制字符串

111000111000111111000111000111

NSMutableData包含png ( NSMutableData *dataForPNGFile = UIImagePNGRepresentation(p.Image);)的对象

4

2 回答 2

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返回不可变数据,因此您需要获取该数据的可变副本。

于 2012-09-13T17:27:49.367 回答
0

查看 NSMuteableData 方法 appendBytes:length:

正如@Tommy 所说,您必须将您的位转换为字节。

于 2012-09-13T17:28:36.513 回答