아이폰어플개발정보2010. 6. 24. 14:21
iPhone KNLocationManager 사용자의 위치정보 파악하기
"주의"
프로젝트에 프레임웍을 추가할때는 반드시!! 카피하지 말아야 한다. 단순히 레퍼런스만 추가되도록 하자.
만약 카피했다가는 아래와 같은 링킹오류를 맛보게 될 것이다.
.objc_class_name_CLLocationManager", referenced from: > collect2

책이 많이들 나와 있으며, 인터넷을 뒤져봐도 쉽게 파악할 수 있는 내용이다.
내가 만든건 위치가 국내인지 국외인지를 메서드로 추가한 정도이고, 델리게이트 부분을 함수포인터로 대체하였다.
나는 왜 델리게이트보다 함수포인터가 더 좋은걸까 ㅡㅡ;;;

우선 사용하는 쪽의 코드다. 콜러쪽
- (IBAction)pressButton:(id)sender {
       
    KNLocationManager *knTdd = [KNLocationManager sharedInstance];
    [knTdd findLocation:self onFind:@selector(onFind:) onError:@selector(onError)];
}

물론 싱글톤이다. 난 싱글톤도 대게 조아해 병적으루다가
보면 onFind 와 onError 에 대한 함수를 건네주도록 되어 있다.

즉, 아래 코드도 같이 있어야 한다는거다.
- (void)onError {
    // 오류난거다. 알아서 처리해 어플을 종료시키던지 아이폰을 폭팔시키던지 후~
}

파인드일때는 국내외를 확인하도록 하였다. CLLocation 형의 인자가 들어온다는걸 잊지말도록

- (void)onFind:(CLLocation *)pLocation {
    KNLocationManager *knTdd = [KNLocationManager sharedInstance];
    if ([knTdd isInKorea:pLocation]) {
        NSLog(@"한국 내에서 사용중");
    } else {
        NSLog(@"한국 외에서 사용중");
    }
}




출처 : http://blog.naver.com/PostView.nhn?blogId=suny4rang&logNo=50082379294
Posted by 오늘마감

댓글을 달아 주세요