2010-06-24 130 views

回答

6

首先你需要一个实现协议CLLocationManagerDelegate的类。所以,你至少需要实现的方法:

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateToLocation:(CLLocation *)newLocation 
      fromLocation:(CLLocation *)oldLocation 
{ 
... 
} 

之后,创建CLLocationManager的一个实例,设置委托并开始更新位置:

CLLocationManager *locationManager = [[CLLocationManager alloc] init]; 
locationManager.delegate  = self; //SET YOUR DELEGATE HERE 
locationManager.desiredAccuracy = kCLLocationAccuracyBest; //SET THIS TO SPECIFY THE ACCURACY 
[locationManager startUpdatingLocation]; 

调用startUpdatingLocation后,您的locationManager: didUpdateToLocation: fromLocation执行得一旦发生定位错误,就立即调用。参数newLocation包含您的实际位置。但是位置管理者会尽快修复一个位置,即使没有给出您指定的准确性。对于这种情况,您必须自行检查新位置的准确性。

欢呼声, 安卡

+0

嗨,在'locationManager'方法,我可以存储经度/纬度到瓦尔在应用以后使用?像这样:' - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { float long = newLocation.longitude; float lat = newLocation.latitude; }' – Luca 2011-05-15 20:50:36