为什么在iOS4.0中没有调用CurrentLotion的委托方法(CLLocationManager)?

时间:2010-08-16 07:23:26

标签: iphone cllocationmanager

我正在使用iPhone sdk 4.0。我使用下面的代码获取当前位置,但它的委托方法不会自动调用...我的代码如下:

.hfile

中的

我有导入

CoreLocation/CoreLocation.h

也委派

CLLocationManagerDelegate

CLLocationManager *locationManager;

.mfile

中的

    locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; // 100 m
[locationManager startUpdatingLocation];

但是我没有获得当前的位置......我的代表方法没有被调用:

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

}

2 个答案:

答案 0 :(得分:0)

您的代码对我来说是正确的。您是否也尝试在真正的iPhone上运行此代码?模拟器并不总是响应位置管理器更新。 您还应该在.m文件中添加另一个重要的委托方法:

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error

如果出现问题,将拨打此电话。例如,位置管理员无法本地化您的iPhone。

答案 1 :(得分:0)

我遇到同样的问题。所有代码看起来都没问题但是没有调用委托方法。

我完全关闭了模拟器。当我重新运行应用程序时,调用了委托方法。