NSlog affiche nil pour un self et self vaut quand meme !=nil (Résolu)
Genose
Membre
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)
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
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: -(void)inittexte{<br />2: [self setTexte:@"cocoa"];//ca change les proprietes de mon textefield<br />3: NSLog(@"%@",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
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
ç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.