Я использую класс CLLocationManager
. У меня есть простой метод класса для захвата местаCLLocationManager Способы делегирования не набираются
+(void)captureLocation{
mLocationManager = [[CLLocationManager alloc]init];
mLocationManager.delegate = (id<CLLocationManagerDelegate>)self;
mLocationManager.desiredAccuracy = kCLLocationAccuracyBest;
[mLocationManager startUpdatingLocation];
}
и у меня есть методы делегата CLLocationManager
также
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
}
теперь я пытаюсь вызвать этот метод в моем viewDidLoad
, как
- (void)viewDidLoad
{
[super viewDidLoad];
[myclass captureLocation];
}
метод вызывается, но методы делегата не вызываются.
У меня есть другой метод класса также и оттуда, если я попытаюсь вызвать метод снова, метод captureLocation
получает вызов, но методы делегата не вызываются. Вот другой метод класса
+(void)initialize{
[self captureLocation];
}
, пожалуйста, помогите мне, чтобы узнать, почему делегат методы не вызывался, как я новичок в этой области. Заранее спасибо.
Установили ли вы делегат ваш объект? – NinjaLikesCheez
проверьте это: http://stackoverflow.com/questions/19603830/location-manager-giving-null-coordinates/19603959#19603959 –
Не связанный с вашей проблемой, учитывая, что вы использовали тег 'ios7', стоит отметить что если вы используете только iOS 6 и более поздние версии, тогда разумно использовать 'locationManager: didUpdateLocations:', а не 'locationManager: didUpdateToLocation: fromLocation:'. Последний метод был устаревшим в iOS 6 и в конечном итоге может быть полностью удален. Ваш код будет более надежным в будущем, если вы используете версию 'didUpdateLocations'. – Rob