[英]Problems with manipulating bytes in a NSMutableData - Wave Header info
[英]manipulating nsmutabledata
嗨,我正在尝试创建一个要通过网络发送到服务器的数据包,我已经对数据包进行了排序,但是缺少一个长度标识符,我需要在方法末尾计算并添加到该数据包中。
包的结构是这样的
目前我的方法看起来像这样
- (NSMutableData *) addRegCode
{
//Supply some default string for testing
NSString *regCode = [[NSString alloc] initWithString:@"abcd1"];
//create NSData object
NSData *registrationCodeData = [regCode dataUsingEncoding:NSUTF8StringEncoding];
NSMutableData * RegistrationCodeMutableData = [[NSMutableData alloc] init]; //send this object
//create leading value
UInt16 leadingValue = 8;
NSData * leadingValueData = [[NSData alloc] initWithBytes:&leadingValue length:sizeof(leadingValue)];
//append data to mutableData
[RegistrationCodeMutableData appendData:leadingValueData];
[RegistrationCodeMutableData appendData:registrationCodeData];
return RegistrationCodeMutableData;
}
我想知道的是如何计算registrationCodeData的大小,然后将其添加到我附加LeadingValueData和registrationCodeData的位置之间
我想我必须使用dataWithBytes:length:但我不确定如何使用此功能
这应该做到。
NSUInteger size = [registrationCodeData length];
NSData *sizeData = [NSData dataWithBytes:&size length:sizeof(size)];
[RegistrationCodeMutableData appendData:leadingValueData];
[RegistrationCodeMutableData appendData:sizeData];
[RegistrationCodeMutableData appendData:registrationCodeData];
还需要注意的是,使用大写字母开头的变量名有点不典型,并且可能使阅读混淆!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.