このバイナリ文字列を追加するにはどうすればよいですか
111000111000111111000111000111
()NSMutableData
を含むオブジェクトへpng
NSMutableData *dataForPNGFile = UIImagePNGRepresentation(p.Image);
このバイナリ文字列を追加するにはどうすればよいですか
111000111000111111000111000111
()NSMutableData
を含むオブジェクトへpng
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
不変データを返すため、その可変コピーを取得する必要があります。
NSMuteableData メソッドの appendBytes:length: を見てください。
@Tommyが言うように、ビットをバイトに変換する必要があります。