J'ai une classe Delegate qui gère les réponses de CLLocationManager et les imprime via printf(). Y a-t-il un type de boucle occupée que je peux mettre dans main() pour que le programme reste ouvert et garde CLLocationManager connecté à Delegate en traitant avec bonheur les événements?Dans une application CLI Cocoa, comment implémenter une boucle d'événements?
#import <Foundation/Foundation.h>
#import "Delegate.h"
#import <CoreLocation/CoreLocation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
Delegate *del = [Delegate alloc];
CLLocationManager *locationManager;
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = del;
[locationManager startUpdatingLocation];
// Something goes here
[pool drain];
return 0;
}
Si 'CLLocationManager' exécute ses trucs sympas sur un autre thread et que vous avez juste besoin de quelque chose pour garder votre programme actif, vous pouvez utiliser' NSApplicationMain (argc, argv) 'ou' dispatch_main() '(from '), à votre convenance. Bien que 'dispatch_main' ne revienne jamais, il n'y a aucune chance que' [pool drain] 'soit appelé. –
zneak
Blessé en utilisant NSRunLoop * runLoop = [NSRunLoop currentRunLoop]; [runLoop run]; –