将nsdata对象组合成nsmutabledata对象
我很确定我必须为这个问题使用NSMutableData,因为我将多次访问该对象并添加每个数据段。将nsdata对象组合成nsmutabledata对象
我面对的问题是,我想创建将由的可变数据对象
我曾尝试以下几个小的NSData对象被追加到结束时创建一个大的NSMutableData对象。
编辑:/ /这种方法现在工作,并追加数据,因为它的假设。所有的
- (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” wuth 型“的NSData *”
的表达
任何帮助将不胜感激,也可能更好的解决方案,我所使用的,如果有的话。
为了摆脱这些警告,你可以做一个可变的副本是这样的...
NSMutableData *first_data = [[self addProSig] mutableCopy]; //nsdata type
NSMutableData *second_data = [[self addAct] mutableCopy]; //nsdata type
是。我宣布它为nsdata不nsmutabledata .. – 2012-04-12 21:08:25
很酷。那么还有什么其他的东西需要你回答吗?它仍然被列为未答复的问题。 :) – 2012-04-12 21:10:05
opps ..我以为我打勾了它...怪异无论如何重新/打勾现在:P – 2012-04-12 21:13:12
什么是'addProSig'和'addAct'方法声明?如果他们返回一个'NSData *',那么你需要通过做一些像NSMutableData * mutDat = [[NSMutableData alloc] initWithLength:[immutData length]]来将它转换为一个'NSMutableData *'; [mutDat setData:immutData];'其中'immutData'是一个不可变的NSData *。 – user1118321 2012-02-24 02:53:03
我已经想通了......我错误地声明了* first_data和* second_data。他们应该是NSData而不是NSMutableData ..对此抱歉。 – 2012-02-24 03:57:33