NSlog affiche nil pour un self et self vaut quand meme !=nil (Résolu)

GenoseGenose Membre
novembre 2005 modifié dans API AppKit #1
salut question basique, mais qui m'a ralenti cette aprem:

pourquoi et est-ce normale lors de l'init d'un objet que cette objet vallant (!=nil) et donc renvoie bien son adresse alloc , que tout mes autres objet initialiser pendant cette init  renvoie pour eux-memes nil vers NSlog et qu'il arrive a passer en (BOOL)True ,le fameux if(self !=nil).

self = [super init];
dans toutes les sous classes évoqué

2005-10-23 21:10:56.053 myapp #0001[2091] ##init delegate  self : <_myapp_delegate: 0x4d0370>
2005-10-23 21:10:56.053 myapp #0001[2091] ##init View  self : (null)
2005-10-23 21:10:56.170 myapp[2091] ##init image  if self : (null)
2005-10-23 21:10:56.171 myapp[2091] ##init image  return self : (null)
2005-10-23 21:10:56.171 myapp[2091] ##change texte image  return  : (null)


j'initialise une classe derivé qui englobe une image et un texte elle-meme sous classe de nsview

NSview
    !
    !
    classe_colorview
            !
            !
            classe_image_texte_color_view   


j'ai un alloc init pour _myapp_delegate qui appel ensuite la creation dans son init d'une instance

classe_image_texte_color_view avant de retouner self (_myapp_delegate)

par contre si je fait un NSlog de mon instance classe_image_texte_color_view elle me retourne bien son alloc.
mais des que je fait un truc avec elle retourne null et passe quand meme le if dans une de ses methode.(la ligne "change texte image" qui est une methode d'instance de classe_image_texte_color_view)
idem pour une operation elle le fait mais pourtant self continue a  donner nil;
exemple (classe_image_texte_color_view)
<br />1:&nbsp; -(void)inittexte{<br />2: [self setTexte:@&quot;cocoa&quot;];//ca change les proprietes de mon textefield<br />3: NSLog(@&quot;%@&quot;,self); donne nil<br />4: }<br />

j'y comprend rien a comment elle arrive a passer les barriere, mais elle le fait et c'est les seules qui me font ca pour le moment.


merci de vos lumieres

Réponses

  • ChachaChacha Membre
    14:49 modifié #2
    Non, je ne veux pas être désagréable juste pour le plaisir, mais est-ce que tu pourrais modifier ton message pour qu'il soit, sinon compréhensible, au moins dénué des fautes de frappe, de grammaire et d'orthographe ?
  • fouffouf Membre
    14:49 modifié #3
    Peut-être que c'est parceque le init a pas fini d'être appelé ;)
  • GenoseGenose Membre
    14:49 modifié #4
    dans 1130107853:

    Peut-être que c'est parceque le init a pas fini d'être appelé ;)


    ça aurait été bien si s'était cela mais même en changeant mon code en virant du init de mon delegate et en le placant dans une methode apeler par une nouvelle ligne apres sa creation, le  code me donne toujours pareil !

    alors j'ai chercher et j'ai fini par testé ma classe toute seule en la separant de quelques dependances , et en encpsulant le tout dans un nouveau projet.

    et là , ca fontionne.


    [Session started at 2005-10-25 15:52:46 +0200.]
    2005-10-25 15:52:46.649 testiconview[949] ##init image  self : <_iconView: 0x3283b0>
    2005-10-25 15:52:46.651 testiconview[949] <_iconView: 0x3283b0>
    2005-10-25 15:52:46.680 testiconview[949] [NSImage imageNamed]: Couldn't find image named default_service_icon
    2005-10-25 15:52:46.680 testiconview[949] #init image  self : <_iconView: 0x3283b0>
    2005-10-25 15:52:46.681 testiconview[949] icon <_iconView: 0x3283b0>


    de suite j'applique les memes changements dans mon projet d'origine, je compile, et la, devinez quoi ...



    ça ne fonctionne pas  >:(


    compliquer cette histoire.

    pour l'instant je continue de cherhcher l'origine de ce probleme.
Connectez-vous ou Inscrivez-vous pour répondre.