Я наткнулся на CoreLocation рамки и реализовал основные шаги, как описано в iOS Location Awareness Programming Guide, так как я не смог найти его для OSX.Как получить информацию о местоположении на MacOS?
// AppDelegate.h
#import <Cocoa/Cocoa.h>
#import <CoreLocation/CoreLocation.h>
@interface AppDelegate : NSObject<NSApplicationDelegate, CLLocationManagerDelegate> {
CLLocationManager* m_locationManager;
}
@end
Существует не так много в файле реализации ...
// AppDelegate.m
- (void)applicationDidFinishLaunching:(NSNotification*)notification {
m_locationManager = [[CLLocationManager alloc] init];
m_locationManager.delegate = self;
m_locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[m_locationManager startUpdatingLocation];
}
#pragma mark - CLLocationManagerDelegate
- (void)locationManager:(CLLocationManager*)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status {
NSLog(@"%@ %@", self.className, NSStringFromSelector(_cmd));
}
- (void)locationManager:(CLLocationManager*)manager didUpdateToLocation:(CLLocation*)newLocation fromLocation:(CLLocation*)oldLocation {
NSLog(@"%@ %@", self.className, NSStringFromSelector(_cmd));
}
- (void)locationManager:(CLLocationManager*)manager didFailWithError:(NSError*)error {
NSLog(@"%@ %@", self.className, NSStringFromSelector(_cmd));
}
При запуске приложения я попросил, чтобы разрешить поиск местоположения. Тот же вопрос появляется через некоторое время.
Проблема: Однако ни один из методов делегата не вызван.
КСТАТИ: интересная статья о Apple and Google Maps объявляя CLGeocoder.
* Mac OS X развертывания Target * установлено значение * Mac OS X 10.7 *, а также установите делегат в файл заголовка. – JJD
На какой машине вы работаете? Я не уверен, что у macs есть какое-либо местоположение для этого. – rdelmar
@rdelmar Это Mac Pro, на котором работает Lion. Насколько я понимаю, API-интерфейс местоположения инкапсулирует WIFI, GPS, поэтому не имеет значения, на какой машине я запускаю это. – JJD