IOS 위치 작업


IOS 측위 동작


소개

IOS의 CoreLocation 측위를 통해 사용자의 현재 위치를 얻을 수 있으며, 기기 이동 정보도 얻을 수 있습니다.

예제 단계

1. 간단한 뷰 기반 애플리케이션을 만듭니다.

2. 프로젝트 파일을 선택한 다음 대상을 선택한 다음 아래와 같이 CoreLocation.framework를 추가합니다.

CoreLocation_Library_Addition

3. ViewController.xib에 두 개의 레이블을 추가하고 latitudeLabel 및 longtitudeLabel

4이라는 ibOutlet 레이블을 만듭니다. 이제 " File-> New -> File... ->"을 선택하여 Objective C 클래스를 선택하고 Next

5를 클릭합니다. "sub class of"를 NSObject로 설정하고 클래스 이름을 LocationHandler

로 지정합니다. 6. Create를 선택합니다.

7. 아래와 같이 LocationHandler.h를 업데이트합니다.

#import <Foundation/Foundation.h>#import <CoreLocation/CoreLocation.h>@protocol LocationHandlerDelegate <NSObject>@required-(void) didUpdateToLocation:(CLLocation*)newLocation 
 fromLocation:(CLLocation*)oldLocation;@end@interface LocationHandler : NSObject<CLLocationManagerDelegate>{    CLLocationManager *locationManager;}@property(nonatomic,strong) id<LocationHandlerDelegate> delegate;+(id)getSharedInstance;-(void)startUpdating;-(void) stopUpdating;@end

9. 아래와 같이 ViewController.h를 업데이트합니다.

#import "LocationHandler.h"static LocationHandler *DefaultManager = nil;@interface LocationHandler()-(void)initiate;@end@implementation LocationHandler+(id)getSharedInstance{    if (!DefaultManager) {        DefaultManager = [[self allocWithZone:NULL]init];        [DefaultManager initiate];    }    return DefaultManager;}-(void)initiate{
    locationManager = [[CLLocationManager alloc]init];
    locationManager.delegate = self;}-(void)startUpdating{    [locationManager startUpdatingLocation];}-(void) stopUpdating{    [locationManager stopUpdatingLocation];}-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation: (CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{    if ([self.delegate respondsToSelector:@selector    (didUpdateToLocation:fromLocation:)]) 
    {        [self.delegate didUpdateToLocation:oldLocation 
        fromLocation:newLocation];    }}@end

10.

Output

애플리케이션을 실행하면 다음과 같은 결과가 출력됩니다.