0

このバイナリ文字列を追加するにはどうすればよいですか

111000111000111111000111000111

()NSMutableDataを含むオブジェクトへpngNSMutableData *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 に答える