Release/Retain Tableau

yafouyafou Membre
mars 2009 modifié dans API UIKit #1
Salut les amis

J'ai un tableau d'objet, j'ajoute des objets et tout est Ok.
Si j'appel ce tableau là  depuis une autre view je m'aperçoit que les valeurs ont disparut (mais apparemment l'adresse rest...peut être).

@property ((nonatomic,retain)NSMutableArray *listUserInfo ;


<br />NSString *FirstName =[NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, 5)];<br />//NSlog(FirstName); --&gt; Donne&nbsp; bien la valeur<br />UserINFO * userInfo = [[UserINFO alloc] initWithName :@&quot;TYPE0&quot; :FirstName]; //-&gt; une fonction qui fait appel à  2 param<br />[listUserInfo addObject:userInfo];<br /><br />



Donc si j'accède au tableau listUserInfo à  l'index 1 par exemple,
La propriété 1 a bien la valeur "TYPE0",
alors que la propriété 2 n'a plus la valeur (ex:Yfo).
Pour info, si je rempace la variable FirstName par une valeur en dure (@YFO) ça marche.
Voilà , et merci à  tous.

<br />UserINFO * userInfo = [[UserINFO alloc] initWithName :@&quot;TYPE0&quot; :@&quot;YFO&quot;]; //--&gt; fonctionne <br />UserINFO * userInfo = [[UserINFO alloc] initWithName :@&quot;TYPE0&quot; :FirstName]; // --&gt; la valeur affecté depuis la variable FirstName disparait !!<br />

Réponses

  • mpergandmpergand Membre
    04:06 modifié #2
    Et le code de UserInfo, il faut le deviner  ::)
    <br />-(id) initWithName:(NSString*) last :(NSString*) first<br />{<br />&nbsp; if(self=[super init])<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp;  lastName=[last retain];<br />&nbsp; &nbsp;  firstName=[first retain];<br />&nbsp; &nbsp; }<br /><br />&nbsp; return self;<br />}<br /><br />-(void) dealloc<br />{<br />&nbsp; [lastName release];<br />&nbsp; [firstName release];<br /><br />&nbsp; [super dealloc];<br />}<br />
    

  • Philippe49Philippe49 Membre
    04:06 modifié #3
    Ben t'as posé la même question ici ?
  • yafouyafou Membre
    04:06 modifié #4
    dans 1236156521:

    Et le code de UserInfo, il faut le deviner  ::)
    <br />-(id) initWithName:(NSString*) last :(NSString*) first<br />{<br />&nbsp; if(self=[super init])<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp;lastName=[last retain];<br />&nbsp; &nbsp; &nbsp;firstName=[first retain];<br />&nbsp; &nbsp; }<br /><br />&nbsp; return self;<br />}<br /><br />-(void) dealloc<br />{<br />&nbsp; [lastName release];<br />&nbsp; [firstName release];<br /><br />&nbsp; [super dealloc];<br />}<br />
    




    Merci mpergand.
    J'ai lu vos deux réponses sur les deux messages et j'ai pu donc résoudre mon problème.
    Les deux réponses sont complémentaire.
Connectez-vous ou Inscrivez-vous pour répondre.