Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[cocoa] awakeFromNib

8 réponses
Avatar
pasde.hcyrano.spam
bonsoir,

pas de déclaration dans l'interface, naivement je pensais que c'etait
une methode d'instance de la classe NSObject redefinie (mais non, pas
de methode -(void)awakeFromNib ds NSObject)

elle sort d'ou et comment est elle appelée?

hum.. c'est le debut d'une longue serie :-)
--
Bruno Causse
http://perso.wanadoo.fr/othello

8 réponses

Avatar
luc
Bruno Causse wrote:

elle sort d'ou et comment est elle appelée?


<http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit
/ObjC_classic/Protocols/NSNibAwaking.html>

--
Luc Heinrich

Avatar
Bruno CAUSSE
dans l'article 1h8k8gb.k8c00d1uvhveaN%, Luc Heinrich à
a écrit le 2/01/06 23:12 :

Bruno Causse wrote:

elle sort d'ou et comment est elle appelée?


<http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit
/ObjC_classic/Protocols/NSNibAwaking.html>


Merci,

Mais ou est "implementé" (je ne sais pas si c'est le bon terme) ce protocol?
Je ne le trouve pas dans NSObject ni dans ma classe :-(


Avatar
luc
Bruno CAUSSE wrote:

Mais ou est "implementé" (je ne sais pas si c'est le bon terme) ce protocol?
Je ne le trouve pas dans NSObject ni dans ma classe :-(


"The Application Kit declares a prototype for awakeFromNib, but does not
provide a default implementation for it."

C'est un protocole, c'est à toi de l'implémenter là où il faut, si
nécessaire.

--
Luc Heinrich

Avatar
Bruno CAUSSE
dans l'article 1h8l1sv.1vlawuh17n6s62N%, Luc Heinrich à
a écrit le 3/01/06 9:50 :

"The Application Kit declares a prototype for awakeFromNib, but does not
provide a default implementation for it."

C'est un protocole, c'est à toi de l'implémenter là où il faut, si
nécessaire.


oui, je m'exprime mal,

Je pensais a un truc du genre

@Class MaClass : NSObject <NSNibAwaking>

Mais j'ai juste declaré

@Class MaClass : NSObject

Et NSObject n'implemente pas NSNibAwaking d'ou ma question.

[rappel] je debute, ne pas s'enerver :-) [rappel]

Avatar
ftestuz
Bruno CAUSSE wrote:

dans l'article 1h8l1sv.1vlawuh17n6s62N%, Luc Heinrich à
a écrit le 3/01/06 9:50 :

"The Application Kit declares a prototype for awakeFromNib, but does not
provide a default implementation for it."

C'est un protocole, c'est à toi de l'implémenter là où il faut, si
nécessaire.


oui, je m'exprime mal,

Je pensais a un truc du genre

@Class MaClass : NSObject <NSNibAwaking>

Mais j'ai juste declaré

@Class MaClass : NSObject

Et NSObject n'implemente pas NSNibAwaking d'ou ma question.


Si, mais -awakeFromNib est déclarer dans NSNibLoading.h comme un
"informal protocol" sur NSObject. Donc toute classe qui hérite de
NSObject hérite de la déclaration de awakeFromNib.

Pour les "informal protocol" il n'y a pas besoin de mettre le
<NSNibAwaking>, ils sont en fait écrit comme des catégories mais sans
l'implémentation.

[rappel] je debute, ne pas s'enerver :-) [rappel]



--
Frédéric Testuz
<mailto:


Avatar
Bruno CAUSSE
dans l'article 1h8l3nd.gfzf1f10kj4hiN%,
Frédéric Testuz à a écrit le 3/01/06 10:32 :

Pour les "informal protocol" il n'y a pas besoin de mettre le
<NSNibAwaking>, ils sont en fait écrit comme des catégories mais sans
l'implémentation.


Enfin, je comprends :-).

Existe t'il un moyen de connaître si une classe est "etendue" par une
categorie (genre browser de classe)

Avatar
ftestuz
Bruno CAUSSE wrote:

dans l'article 1h8l3nd.gfzf1f10kj4hiN%,
Frédéric Testuz à a écrit le 3/01/06 10:32 :

Pour les "informal protocol" il n'y a pas besoin de mettre le
<NSNibAwaking>, ils sont en fait écrit comme des catégories mais sans
l'implémentation.


Enfin, je comprends :-).

Existe t'il un moyen de connaître si une classe est "etendue" par une
categorie (genre browser de classe)


J'utilise AppKiDo. Il pratiquement toujours ouvert en même temps que
Xcode chez moi.

--
Frédéric Testuz
<mailto:


Avatar
gilles
Exemple de son utilisation...


// awakeFromNib
//
// Called automatically when this object is loaded from the Nib.
- (void) awakeFromNib
{
_directions = [[NSMutableArray alloc] init];
_messages = [[NSMutableArray alloc] init];

[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(dataIn:)
name:@"DATA_IN"
object:nil];

// We want to start the auto-update checking thread.
[[RDAKUpdateController sharedInstance]
startAutoUpdateThread];

// We want the user to select a bluetooth device
[NSTimer
scheduledTimerWithTimeInterval:0.05
target:self
selector:@selector(chooseDevice)
userInfo:nil
repeats:NO];
}