comment utiliser NSRunLoop dans l'objectif-C et attendre une variable pour changer la valeur?comment utiliser NSRunLoop dans l'objectif-C?
Merci
comment utiliser NSRunLoop dans l'objectif-C et attendre une variable pour changer la valeur?comment utiliser NSRunLoop dans l'objectif-C?
Merci
Nous n'utiliserions normalement pas un NSRunLoop en production pour attendre qu'une variable change. On pourrait utiliser un rappel.
Cependant, dans le code de test unitaire nous avons les éléments suivants:
NSDate *twoSecondsFromNow = [NSDate dateWithTimeIntervalSinceNow:2.0];
while (!callBackInvoked && !errorHasOccured && runCount-- && [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:twoSecondsFromNow]) {
twoSecondsFromNow = [NSDate dateWithTimeIntervalSinceNow:2.0];
}
Le code attend jusqu'à ce que notre rappel est invoquée, une erreur est survenue ou le nombre de 2 secondes périodes, nous avons attendu a eu lieu . Nous utilisons cela pour tester les délégués qui effectuent des rappels.
Comme je l'ai dit, je ne le ferais pas en code de production.
Vous généralement pas utiliser NSRunLoop
directement dans votre code.
Vous par exemple créer l'application GUI
qui a déjà NSRunLoop
en elle (utiliser des modèles de code d'application prédéfinis dans Xcode
). Cela dépend de la variable qui est censée changer, vous pouvez l'avoir quelque part dans votre objet 'Model' et il sera changé par certains même comme les données arrivant en ligne, ou liées à l'objet GUI et à l'action effectuée par l'utilisateur.
Et ainsi de suite, Cocoa
va gérer le code de la colle pour vous, vous avez juste besoin de configurer la manipulation appropriée pour effectuer une action.
Il n'y a pas assez de détails dans votre question, je suggère de jeter un oeil à certains tutorial at Apple's site for developers de base pour voir ce qui est disponible dans Cocoa.