我如何附加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];
请告诉我是否还有其他办法 谢谢你的帮助。
答案 0 :(得分:18)
瞥了一眼我的水晶球:
您将seconddata
声明为NSMutableData
个实例,但之后使用[NSData dataWithData:]
而不是[NSMutableData dataWithData:
]对其进行初始化,因此seconddata
赢了最后是不可变的,你不能追加它。
您正试图附加到firstdata
,这也不是可变的。
解决方案:使firstdata
变为可变:
NSMutableData *firstdata = [NSMutableData dataWithBytes: &lendata
length: sizeof(lendata)];
[firstData appendData:[message dataUsingEncoding:NSUTF8StringEncoding]];
然后您可以安全地放弃mdata
和seconddata
,因为它们不再需要了。
答案 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];
检查以上代码以追加