gpt4 book ai didi

iphone - 操纵 nsmutabledata

转载 作者:行者123 更新时间:2023-11-29 13:39:53 26 4
gpt4 key购买 nike

您好,我正在尝试创建一个我想通过网络发送到服务器的数据包,我几乎已经对数据包进行了排序,但是它缺少一个长度标识符,我需要在我的方法结束时计算它并添加放入数据包。

数据包结构是这样的

  • 前导值标识符 (UInt16)
  • 内容大小(UInt32)
  • 数据包内容(字符串)

目前我的方法看起来像这样

- (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: 但我不是 100% 确定如何使用它

最佳答案

这应该可以做到。

NSUInteger size = [registrationCodeData length];
NSData *sizeData = [NSData dataWithBytes:&size length:sizeof(size)];
[RegistrationCodeMutableData appendData:leadingValueData];
[RegistrationCodeMutableData appendData:sizeData];
[RegistrationCodeMutableData appendData:registrationCodeData];

还需要注意的是,使用大写字母作为变量名的开头有点不典型,可能会造成阅读困惑!

关于iphone - 操纵 nsmutabledata,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9457076/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com