6

我很确定我必须使用 NSMutableData 来解决这个问题,因为我将多次访问该对象并在拥有它后添加每个数据部分。

我面临的问题是我想创建一个大的 NSMutableData 对象,该对象将由附加到可变数据对象末尾的几个小的 NSData 对象创建

我尝试了以下方法。

编辑://此方法现在可以正常工作并按预期附加数据。

- (void) constructRequest
{
    NSData * protocolInt = [self addProtocolVersion];
    NSMutableData * myMutableData = [[NSMutableData alloc] init];

    NSData *first_data = [self addProSig]; //nsdata type
    NSData *second_data = [self addAct]; //nsdata type
    [myMutableData appendData:first_data];
    [myMutableData appendData:second_data];
    //etc


    [protocolInt writeToFile:@"/Users/imac/Desktop/_dataDump.dat" atomically:YES];

}

首先,我什至不确定这是否是附加数据的正确方法,只是我见过几个类似的例子。主要问题是这里的两条线

NSMutableData *first_data = [self addProSig]; //nsdata type
        NSMutableData *second_data = [self addAct]; //nsdata type

我在两条线上都有警告

初始化 'NSMutableData * _strong' 的指针类型不兼容,使用类型为 'NSData *' 的表达式

任何帮助将不胜感激,如果有的话,也可能是我正在使用的更好的解决方案。

4

1 回答 1

5

要摆脱这些警告,您可以像这样制作一个可变副本......

NSMutableData *first_data = [[self addProSig] mutableCopy]; //nsdata type
NSMutableData *second_data = [[self addAct] mutableCopy]; //nsdata type
于 2012-04-12T21:03:09.830 回答