[simple]현재 위치 및 시간 알아내기.

2012. 12. 3. 15:14제2외국어/iOS


가끔씩 현재 위치 및 시간을 알아야 할 때가 있습니다.
그럴때를 위해서 가장 간단한 것만 찾아서 간단하게 적어보았습니다.


** 현재 위치 알아내기

1. CoreLocation Framework 추가하기


CLLocationManager 를 사용하기 위해서 "CoreLocationFramework 를 추가해주어야 합니다.


2. 헤더파일 설정 .h

#import <CoreLocation/CoreLocation.h>
@interface PhotoViewController : UIViewController
<CLLocationManagerDelegate
{
    CLLocationManager *locationManager;
}
@property (nonatomic, strong) CLLocationManager *locationManager;



3. 소스파일 설정 .m

locationManager = [[CLLocationManager alloc]init];                 // 초기화
locationManager.delegate = self;                                            // delegate 연결
locationManager.desiredAccuracy = kCLLocationAccuracyBest;  // 정확도 최고로 설정

[locationManager startUpdatingLocation];                                // 현재 위치 업데이
NSLog(@"%f",locationManager.location.coordinate.latitude);      // latitude     NSLog(@"%f",locationManager.location.coordinate.longitude);    // longitude 


< 주의사항 >
위치 정보를 가져오기 위해서는 해당 앱을 처음 실행시켰을 때 이 앱이 위치 정보를 가져가는걸 허락할지 물어봅니다.
그렇기 때문에 허락하지 않거나, viewDidLoad 에 위 소스를 그대로 적으시면 허락하기도 전에 로그를 찍기 때문에 제대로 된 
값을 가져오지 못 합니다.
아 그리고 시뮬레이터로 할 경우에는 애플 본사의 위치만 찍힙니다. 참고하세요.



** 현재 시간 알아내기

인터넷을 찾아보시면 NSDate 와 NSCalendar 를 활용해서 찾는 방법 등 여러가지 방법이 있습니다. 
그 중 가장 간단하게 알 수 있는 방법을 소개해드리겠습니다.

-- 참고한 사이트입니다.  :훨씬 다양한 방법들이 소개되어있습니다.

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy"];
int year = [[dateFormatter stringFromDate:[NSDate date]] intValue];    
[dateFormatter setDateFormat:@"MM"];
int month = [[dateFormatter stringFromDate:[NSDate date]] intValue];
[dateFormatter setDateFormat:@"dd"];
int day = [[dateFormatter stringFromDate:[NSDate date]] intValue];
[dateFormatter setDateFormat:@"HH"];
int hour = [[dateFormatter stringFromDate:[NSDate date]] intValue];
[dateFormatter setDateFormat:@"mm"];
int minute = [[dateFormatter stringFromDate:[NSDate date]] intValue];
[dateFormatter setDateFormat:@"ss"];
int second = [[dateFormatter stringFromDate:[NSDate date]] intValue];

NSLog
(@"%d-%d-%d-%d-%d-%d",year,month,day,hour,minute,second);

<초간단!!!>
: 위 형식처럼 자를수도 있고, 아니면 아래와 같이 한번에 표현도 가능합니다.

[dateFormatter setDateFormat:@"yyyy-MM-dd-HH-mm-ss"];
NSString *nowDate = [dateFormatter stringFromDate:[NSDate date]];
NSLog(@"%@",nowDate);


: 끝입니다. 주석도 달 필요없이 NSDateFormatter 를 이용해 DateFormat 를 이용해 분류해주는 작업이 다 입니다.


**Result


nowDate 라는 어플에 위치 정보를 허락하는지 물어보는 화면입니다.



실제 로그 입니다. 현재시간과 (시뮬레이터이기 때문에)애플의 위치가 찍혔습니다.