我正在使用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
{
}
答案 0 :(得分:0)
您的代码对我来说是正确的。您是否也尝试在真正的iPhone上运行此代码?模拟器并不总是响应位置管理器更新。 您还应该在.m文件中添加另一个重要的委托方法:
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
如果出现问题,将拨打此电话。例如,位置管理员无法本地化您的iPhone。
答案 1 :(得分:0)
我遇到同样的问题。所有代码看起来都没问题但是没有调用委托方法。
我完全关闭了模拟器。当我重新运行应用程序时,调用了委托方法。