ios - 将二进制字符串附加到 NSMutableData

标签 ios nsmutabledata

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

111000111000111111000111000111

到包含 pngNSMutableData 对象 (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/

相关文章:

ios - Xcode NSURLConnection NSMutableData appdendData 有时只能工作

ios - Objective-C 自定义类操作和导出

ios - 带有滚动的 UITextView 动态设置调整大小为默认值

ios - 触发本地通知时的自定义 View

iphone - 将 XML 转换为 NSString

ios - NSMutableData 到 NSDictionary 返回 null

ios - UIButton touchDragInside 不起作用

ios - 点击加号添加应用 Error 500. No Apps showing up

IOS NSData构造函数VS NSMutableData实时使用目的