1

我想添加新的 NSdata = x20 (ASCII) ,它最后是 NSMutableData 中的一个空格到足够的固定字节。示例: NSmuatabledata 有 400 个字节,但我需要这个 NSMutableData 有 600 个字节。所以我想最后在这个 nsmutableData 中添加 200 个字节(十六进制中的 x20)。我怎样才能做到这一点?请帮我。提前致谢

// write xmlDoc to file
NSData* xmlData = [xmlDoc XMLDataWithOptions:NSXMLNodePreserveAll];
NSLog(@"xmlData %@",xmlData);
NSMutableData * datawrite = [xmlData mutableCopy ] ;
NSArray *array = [[NSArray alloc] init]; // i dont know how to add x20 (hex) to this array 
[datawrite appendData:[[NSString stringWithFormat:@"%@", array] dataUsingEncoding:NSUTF8StringEncoding]];
4

1 回答 1

1
NSMutableData *datawrite = ...
NSUInteger oldLength = [datawrite length];
NSUInteger newLength = 600;
if (newLength > oldLength ) {
    // extend mutable data object:
    [datawrite setLength:newLength];

    // fill appended bytes with space characters:
    char *bytes = [datawrite mutableBytes];
    memset(bytes + oldLength, ' ', newLength - oldLength);
}
于 2013-09-04T08:11:03.273 回答