Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how append nsdata

how i could append nsdata, i would append lenght data on first message to send on socket i use code like this but error on runing.

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];

please tell if there is another way Thanks for your help.

like image 683
user752846 Avatar asked May 18 '11 09:05

user752846


2 Answers

Glancing into my crystal ball:

  1. You are declaring seconddata as an NSMutableData instance, but then you initialize it using [NSData dataWithData:] instead of [NSMutableData dataWithData:], so seconddata won't be mutable in the end and you cannot append to it.

  2. You are trying to append to firstdata, which is not mutable either.

Solution: make firstdata mutable:

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

Then you can safely drop mdata and seconddata as they are not needed anymore.

like image 100
Tamás Avatar answered Nov 10 '22 21:11

Tamás


 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]; 

check above code for append

like image 45
Narayanan Ramamoorthy Avatar answered Nov 10 '22 20:11

Narayanan Ramamoorthy