Получение текущего местоположения пользователя iOS 8.0
Я пытаюсь получить текущее местоположение пользователей, используя MapKit и CoreLocation. Я действительно новичок в Objective-C. Что касается моего исследования, реализация немного отличается от старой iOS до iOS 8.0. Я все правильно выполнил. Тем не менее он получает текущее местоположение. Моя реальная цель - получить местоположение пользователя на карте mapKit во время выполнения, когда пользователь указывает местоположение в текстовом поле.
filename.h
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
@interface LocationSelectionViewController : UIViewController <CLLocationManagerDelegate>
@property (weak, nonatomic) IBOutlet UITextField *insertLocation;
@property (strong, nonatomic) IBOutlet MKMapView *serviceLocation;
- (IBAction)next:(id)sender;
@end
#import "LocationSelectionViewController.h"
#import <CoreLocation/CoreLocation.h>
@interface LocationSelectionViewController () <CLLocationManagerDelegate>
@end
@implementation LocationSelectionViewController
CLLocationManager *locationManager;
@synthesize serviceLocation;
- (void)viewDidLoad {
[super viewDidLoad];
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
[locationManager requestAlwaysAuthorization];
[locationManager startUpdatingLocation];
// Do any additional setup after loading the view.
self.serviceLocation = [[MKMapView alloc] initWithFrame:self.view.bounds];
self.serviceLocation.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view addSubview:self.serviceLocation];
[self.serviceLocation.delegate self];
//[self.serviceLocation setShowsUserLocation:YES];
}
/*- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation{
CLLocationCoordinate2D loc=[userLocation coordinate];
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(loc, 100, 100);
[self.serviceLocation setRegion:region animated:YES];
}*/
-(void) locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations{
[locationManager requestAlwaysAuthorization];
[locationManager startUpdatingLocation];
}
-(void) locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status{
if(status == kCLAuthorizationStatusAuthorizedAlways || status == kCLAuthorizationStatusAuthorizedWhenInUse){
self.serviceLocation.showsUserLocation = YES;
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
- (IBAction)next:(id)sender {
}
@end
Как на картинке, я добавил два свойства согласно требованию iOS 8.
Может кто-нибудь посоветовать мне в архиве это:
получение пользователями текущего местоположения.получение местоположения из текстового поля и закрепление на MapKip во время выполнения.