Je voudrais géolocaliser en arrière-plan avec un thred! Mais je ne peux pas, j'ai essayé scheduler, thred, opération ect ect ... mais tout ce que je bloque la progression de la barre de progression.Géolocalisation asynchrone iOS
-5
A
Répondre
2
J'utilise un objet singleton pour l'emplacement comme celui-ci ...
@implementation LocationManager
#pragma mark - singleton method
+ (LocationManager*)sharedInstance
{
static dispatch_once_t predicate = 0;
__strong static id sharedObject = nil;
dispatch_once(&predicate, ^{
sharedObject = [[self alloc] init];
});
return sharedObject;
}
#pragma mark - instance methods
-(id) init {
if (self = [super init]) {
_currentLocation = [[CLLocation alloc] init];
_locationManager = [[CLLocationManager alloc] init];
_locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
_locationManager.delegate = self;
}
return self;
}
- (void)start
{
[self.locationManager startUpdatingLocation];
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
//if the time interval returned from core location is more than two minutes we ignore it because it might be from an old session
if (abs((int) [newLocation.timestamp timeIntervalSinceDate: [NSDate date]]) < 120) {
self.currentLocation = newLocation;
}
}
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
// [[[UIAlertView alloc] initWithTitle:@"Error" message:[error description] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show];
}
@end
Alors je dois juste appeler ...
[[LocationManager sharedInstance] start];
et le singleton Point de départ suivi.
Que je l'appelle ...
[[LocationManager sharedInstance] currentLocation];
pour l'emplacement actuel.
Vous pouvez ensuite utiliser ceci pour passer aux méthodes déjà asynchrones de CLGeocoder.
Vous ne pouvez pas compter sur le démarrage du suivi de l'emplacement, puis sur l'emplacement immédiat. Vous devez utiliser une méthode comme celle-ci.
0
CLGeocoder fonctionne en arrière-plan.
Questions connexes
- 1. ios - appel asynchrone multiple
- 2. cartes ios personnalisées, géolocalisation, cartographie et plus
- 3. dans ios comment créer une alarme basée sur la géolocalisation?
- 4. PhoneGap Build 6.3.0 géolocalisation getCurrentPosition lent sur IOS
- 5. iOS: comment vérifier si la géolocalisation est toujours activée?
- 6. ios - Géolocalisation et suivi dans un fichier gpx
- 7. Open Data Protocol dans IOS demande asynchrone
- 8. Envoyer un appel asynchrone dans IOS 5
- 9. Appel asynchrone d'une méthode utilisant IOS 4
- 10. Android/ios notification asynchrone utilisant cordova
- 11. géolocalisation iPhone
- 12. HTML5 Géolocalisation
- 13. Javascript Géolocalisation
- 14. Géolocalisation JSF
- 15. jquery mobile + Google Maps + Géolocalisation
- 16. erreur de géolocalisation: l'utilisateur a refusé la géolocalisation android
- 17. Code d'état NSURLConnection pour la requête asynchrone iOS 6
- 18. Test de code asynchrone sur iOS avec OCunit
- 19. Toutes les connexions NSURLConnectez-vous de manière asynchrone? iOs
- 20. demande asynchrone d'images par url pour scrollview ios
- 21. géolocalisation précise via IP
- 22. iPhone Précis géolocalisation inversée
- 23. HTML5 géolocalisation iphone
- 24. géolocalisation en sencha
- 25. Techniques de géolocalisation mobile
- 26. tutoriel pour TriggerIO + géolocalisation
- 27. Repli sur la géolocalisation
- 28. Android - Géolocalisation HTML
- 29. Phonegap/Cordova Géolocalisation IPhone
- 30. Windows 8 Géolocalisation
Les méthodes CLGeocoder sont déjà asynchrones et s'exécutent en arrière-plan. –
Voulez-vous dire que vous voulez trouver l'emplacement des appareils? c'est-à-dire lat et long? Ou voulez-vous trouver le nom de l'endroit où se trouve l'appareil? – Fogmeister
... et parce que lorsque je lancedatelocation la barre de progression arrête d'attendre d'avoir terminé l'emplacement et de continuer ensuite vers l'avant? – mikejobs