2012-02-24 7 views
6

Je suis assez sûr que je dois utiliser NSMutableData pour ce problème car j'accéderai à l'objet plusieurs fois et en ajoutant chaque section de données une fois que je l'ai.combiner des objets nsdata dans l'objet nsmutabledata

Le problème que je suis confronté à est que je suis désireux de créer un grand objet NSMutableData qui sera créé par plusieurs petits objets NSData qui sont append à la fin des données mutables objectent

J'ai essayé ce qui suit .

EDIT: // Cette méthode fonctionne maintenant et ajoute les données comme supposées.

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

} 

d'abord tout ce que je ne suis même pas sûr que ce soit la bonne façon d'ajouter des données, il est juste que je l'ai vu plusieurs exemples similaires. Le principal problème est que les deux lignes ici

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

J'ai mises en garde sur les deux lignes

types pointeur incompatibles initialisation 'NSMutableData * _strong' wuth une expression de type 'NSData *'

toute aide serait appréciée, Également possible de meilleures solutions que ce que j'utilise s'il y en a.

+0

Quelle est la déclaration de méthode pour '' addProSig' et addAct'? Si elles renvoient un 'NSData *', alors vous devez le convertir en un 'NSMutableData *' en faisant quelque chose comme 'NSMutableData * mutDat = [[NSMutableData alloc] initWithLength: [longueur immutData]]; [mutDat setData: immutData]; 'où' immutData' est un NSData immuable *. – user1118321

+0

Je l'ai compris ... Je déclarais incorrectement * * first_data et * second_data. ils auraient dû être NSData non NSMutableData .. désolé à ce sujet. –

Répondre

5

Pour se débarrasser de ces avertissements que vous pouvez faire une copie mutable comme ça ...

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

yup. Je le déclarais comme nsdata pas nsmutabledata .. –

+0

Cool. Y a-t-il autre chose dont vous avez encore besoin de réponse sur celui-ci alors? Il est toujours répertorié comme une question sans réponse. :) –

+0

opps .. Je pensais que je l'avais coché ... bizarre de toute façon re/coché maintenant: P –

Questions connexes