2012-02-24 34 views
6

Tôi khá chắc chắn rằng mình phải sử dụng NSMutableData cho vấn đề này vì tôi sẽ truy cập vào đối tượng nhiều lần và thêm từng phần dữ liệu khi tôi có nó.kết hợp các đối tượng nsdata vào đối tượng nsmutabledata

Vấn đề tôi đang phải đối mặt với là tôi đang muốn tạo ra một đối tượng NSMutableData lớn sẽ được tạo ra bởi một số đối tượng NSData nhỏ được nối thêm vào cuối cùng của dữ liệu có thể thay đổi đối tượng

Tôi đã thử những điều sau đây .

EDIT: // Phương pháp này hiện đang hoạt động và nối thêm dữ liệu như được cho là quá.

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

} 

Trước hết tôi thậm chí không chắc chắn nếu điều này là cách chính xác để nối thêm dữ liệu, Chỉ là tôi đã thấy một số ví dụ tương tự. Vấn đề chính là về hai dòng ở đây

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

tôi có cảnh báo trên cả hai dòng

loại con trỏ tương thích khởi 'NSMutableData * _strong' wuth một biểu hiện của loại 'NSData *'

bất kỳ trợ giúp nào sẽ được đánh giá cao, Ngoài ra các giải pháp tốt hơn có thể là những gì tôi đang sử dụng nếu có.

+0

khai báo phương thức cho 'addProSig' và 'addAct' là gì? Nếu họ trả về một 'NSData *' thì bạn cần phải chuyển đổi nó thành một 'NSMutableData *' bằng cách làm một cái gì đó như 'NSMutableData * mutDat = [[NSMutableData alloc] initWithLength: [immutData length]]; [mutDat setData: immutData]; 'where' immutData' là một NSData không thay đổi *. – user1118321

+0

Tôi đã tìm ra nó .. Tôi đã khai báo * first_data và * second_data không chính xác. họ nên đã được NSData không NSMutableData .. xin lỗi về điều đó. –

Trả lời

5

Để thoát khỏi những cảnh báo bạn có thể tạo một bản sao có thể thay đổi như thế này ...

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

yup. tôi đã tuyên bố nó là nsdata không nsmutabledata .. –

+0

Cool. Có điều gì khác mà bạn vẫn cần được trả lời trên cái này không? Nó vẫn được liệt kê như là một câu hỏi chưa được trả lời. :) –

+0

opps .. Tôi nghĩ rằng tôi đã đánh dấu nó ... lạ anyway lại/ticked bây giờ: P –

Các vấn đề liên quan