Si vous ne voulez pas utiliser des instances de SomeScript ... vous pouvez suivre une approche différente. Utilisez NSNotificationCenter pour envoyer une notification à votre objet SomeScript et lui faire exécuter un sélecteur par la suite.
Dans votre - méthode (void) awakeFromNib {}, de SomeScript placer le code suivant:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(mySelector:)
name:@"aUniqueNameForTheNotification"
object:nil];
Créer la méthode "mySelector:" et placez-le à l'appel à votre méthode de loggedIn. (Ou si vous préférez, vous pouvez remplacer « mySelector: » avec loggedIn directement)
-(void) mySelector:(id)elem
{
[self loggedIn];
}
Merci de ne pas oublier d'enlever l'observateur sur dealloc, donc placez le morceau de code suivant dans votre classe SomeScript aussi:
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
Ensuite, vous pouvez envoyer une notification de toute autre façon:
[[NSNotificationCenter defaultCenter] postNotificationName:@"aUniqueNameForTheNotification" object:self];
Ce dernier morceau de code envoie une notification à SomeScript et votre sélecteur est exécuté.
J'espère que ça vous aidera les gars!
Vous devez ajouter quelque chose sur la libération myScript – JeremyP
@JeremyP: Il est dans son AppDelegate. @ChristianStewart: Jeremy a raison, vous devriez normalement envoyer 'release' à' myScript' quand vous en aurez fini. Je ne vous l'ai pas dit parce que je supposais que vous l'utiliseriez tout le temps que votre application est ouverte. – andyvn22
Cela ne fait aucun mal de prendre de bonnes habitudes. Techniquement, vous n'avez pas besoin de publier quoi que ce soit que votre délégué d'application conserve, car le délégué de l'application reste jusqu'à la fin. Cependant, c'est une bonne idée de prendre l'habitude de mettre la version dans -dealloc. Il doit devenir automatique. – JeremyP