增加NSData的长度

时间:2012-06-03 15:10:51

标签: objective-c iphone nsstring nsdata

基本上,我有一个46个字符的NSString,我转换为NSData。我需要将字符串填充为48个字符。它只是在NSString的末尾加上''才能起作用。所以,我只是使用这个来增加NSData的长度:

NSString *string = @"__46characterlongstring__";
NSData *d = [string dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"d: %@", d);
NSData *data = [NSData dataWithBytes:[d bytes] length:48];
NSLog(@"data: %@", data);

名为'd'的NSData返回< 723d6c67 6e267573 65726e61 6d653d64 61766964 77617473 6f6e3936 26706173 73776f72 643d736e 30307079 6f32>

名为'data'的NSData返回< 723d6c67 6e267573 65726e61 6d653d64 61766964 77617473 6f6e3936 26706173 73776f72 643d736e 30307079 6f32_ >,其中_ 是4个随机字符(通常为数字) )

我如何确保'数据'返回< 723d6c67 6e267573 65726e61 6d653d64 61766964 77617473 6f6e3936 26706173 73776f72 643d736e 30307079 6f320000> - 4 0而不是4个随机字符?

感谢。

1 个答案:

答案 0 :(得分:8)

你想使用NSMutableData,你从你从字符串返回的NSData中创建,然后添加一些零:

NSMutableData *paddedData = [NSMutableData dataWithData:d];
[paddedData increaseLengthBy:4];