2012-02-24 7 views
6

Jestem dość pewny, że muszę użyć NSMutableData dla tego problemu, ponieważ będę uzyskiwać dostęp do obiektu kilka razy i dodawać każdą sekcję danych, gdy już ją otrzymam.Łączenie obiektów nsdata w obiekt nsmutabledata

Problem mam do czynienia z jest to, że ja chcąc stworzyć jeden duży obiekt NSMutableData, który zostanie utworzony przez kilku małych obiektów NSData, które są dołączone do końca dane Zmienne sprzeciwiają

Próbowałem następujących .

EDYCJA: // Ta metoda teraz działa i dołącza dane, jak również.

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

} 

Przede wszystkim nie jestem nawet pewien, czy jest to poprawny sposób dołączania danych, to tylko, że widziałem kilka przykładów podobnego. Głównym problemem jest to, że na dwóch liniach tutaj

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

Mam ostrzeżenia na obu liniach

niezgodne typy wskaźnika inicjalizacji „NSMutableData * _strong” Wuth wyrażenia typu „NSData *”

każda pomoc byłaby doceniana, możliwe są również lepsze rozwiązania, których używam, jeśli są jakieś.

+0

Co to jest deklaracja metody 'addProSig' i' addAct'? Jeśli zwrócą 'NSData *', musisz przekonwertować go na 'NSMutableData *', wykonując coś takiego jak 'NSMutableData * mutDat = [[NSMutableData alloc] initWithLength: [immutData length]]; [mutDat setData: immutData]; 'gdzie' immutData' jest niezmiennym NSData *. – user1118321

+0

Wyliczyłem to .. Deklarowałem * first_data i * second_data niepoprawnie. powinny być NSData nie NSMutableData .. przepraszam za to. –

Odpowiedz

5

Aby pozbyć się tych ostrzeżeń można zrobić zmienny kopię takiego ...

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

tak. zadeklarowałem to jako nsdata nie nsmutabledata .. –

+0

Fajnie. Czy jest jeszcze coś, na co wciąż potrzebujesz odpowiedzi? Nadal jest wymieniony jako pytanie bez odpowiedzi. :) –

+0

opps .. Myślałem, że mam zaznaczone to ... dziwne zresztą ponownie/ticked teraz: P –