2012-02-24 1 views
6

Sono abbastanza sicuro di dover utilizzare NSMutableData per questo problema poiché accederò più volte all'oggetto e aggiungerò ogni sezione di dati una volta ottenuta.combina gli oggetti nsdata nell'oggetto nsmutabledata

Il problema che sto affrontando è che io voglia di creare un unico grande oggetto NSMutableData che verrà creato da diversi piccoli oggetti NSData che si aggiunge alla fine dei dati mutabili obiettano

Ho provato quanto segue .

MODIFICA: // Questo metodo ora funziona e accoda i dati come anche supposto.

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

} 

Prima di tutto io non sono nemmeno sicuro se questo è il modo corretto di aggiungere dati, E 'solo che ho visto diversi esempi simili. Il problema principale è che sulle due linee qui

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

ho avvertimenti su entrambe le linee

tipi di puntatore incompatibili inizializzazione 'NSMutableData * _strong' wuth un'espressione di tipo 'NSData *'

qualsiasi aiuto sarebbe apprezzato, anche possibili soluzioni migliori che quello che sto usando se ce ne sono.

+0

Qual è la dichiarazione di metodo per la '' addProSig' e addAct'? Se restituiscono un 'NSData *', allora devi convertirlo in un 'NSMutableData *' facendo qualcosa come 'NSMutableData * mutDat = [[NSMutableData alloc] initWithLength: [immutData length]]; [mutDat setData: immutData]; 'dove' immutData' è un NSData immutabile *. – user1118321

+0

L'ho capito. Stavo dichiarando in modo errato * first_data e * second_data. avrebbero dovuto essere NSData non NSMutableData .. mi dispiace per quello. –

risposta

5

per sbarazzarsi di quelle avvertenze che è possibile effettuare una copia mutevole come questo ...

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

sì. lo stavo dichiarando come nsdata non nsmutabledata .. –

+0

Cool. C'è qualcos'altro su cui hai ancora bisogno di rispondere su questo? È ancora elencato come una domanda senza risposta. :) –

+0

opps .. Pensavo di averlo spuntato ... strano comunque re/ticchettato ora: P –