老谭笔记

其实OSX上也有CoreLocation框架

直到最近升级到10.8的系统,看到系统自带的新浪微博可以获取用户的地址,才让我开始注意到原来OSX上面从10.6之后就引入了CoreLocation的,但之前很少有OSX的程序使用CoreLocation服务,我猜想应该是基于网络的定位的精度还远远不如像iPhone通过GPS定位,所以如果需要实现精度较高的位置,在OSX上就显得不给力.但比如要实现诸如天气预报,用户的城市名称,还是相当方便的.

CoreLocation在OSX上的使用方法和iOS上几乎是一样的,下面就简单的写一个示例吧:
创建一个locationManager,并开始跟踪用户的位置:

1
2
3
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
[locationManager startUpdatingLocation];

在回调方法中获取用户的位置:

1
2
3
4
5
6
7
8
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
NSLog(@"你的经纬度分别是%f,%f",newLocation.coordinate.latitude,newLocation.coordinate.longitude);
}
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
NSLog(@"无法获取到地址!");
}

奉上一个小Demo吧,根据位置,再使用yahoo的API,取到用户的当前位置:
LocalBaseService