怎么追加nsdata

时间:2011-05-18 09:16:39

标签: cocoa-touch nsdata

我如何附加nsdata,我会在第一条消息上追加lenght数据以便在socket上发送 我使用这样的代码,但运行时出错。

int lendata = [message length];
NSData *firstdata = [NSData dataWithBytes: &lendata length: sizeof(lendata)];
NSData *mdata = [message dataUsingEncoding:NSUTF8StringEncoding];
NSMutableData *seconddata = [NSData dataWithData:mdata];
[firstdata appendData:secondata];

请告诉我是否还有其他办法 谢谢你的帮助。

2 个答案:

答案 0 :(得分:18)

瞥了一眼我的水晶球:

  1. 您将seconddata声明为NSMutableData个实例,但之后使用[NSData dataWithData:]而不是[NSMutableData dataWithData:]对其进行初始化,因此seconddata赢了最后是不可变的,你不能追加它。

  2. 您正试图附加到firstdata,这也不是可变的。

  3. 解决方案:使firstdata变为可变:

    NSMutableData *firstdata = [NSMutableData dataWithBytes: &lendata
                                                     length: sizeof(lendata)];
    [firstData appendData:[message dataUsingEncoding:NSUTF8StringEncoding]];
    

    然后您可以安全地放弃mdataseconddata,因为它们不再需要了。

答案 1 :(得分:6)

 NSMutableData *first_data = [NSMutableData dataWithContentsOfURL:self.firstURL];
 NSMutableData *second_data = [NSMutableData dataWithContentsOfURL:self.secondURL];
 [first_data appendData:second_data];
 [first_data writeToURL:url atomically:YES]; 

检查以上代码以追加