[英]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.