developer tip

CLLocationCoordinate2D가 비어 있지 않은지 확인하는 방법은 무엇입니까?

optionbox 2020. 12. 6. 21:28
반응형

CLLocationCoordinate2D가 비어 있지 않은지 확인하는 방법은 무엇입니까?


CLLocationCoordinate2D가 비어 있지 않은지 확인하는 방법은 무엇입니까?


아주 오래된 주제 였지만 지금은 필요했고 Klaas Hermanns의 도움으로 약간의 변경으로 문제를 해결했습니다.

대신에

if( myCoordinate ==  kCLLocationCoordinate2DInvalid ) {
  NSLog(@"Coordinate invalid");
}

나는 사용해야했다

if (CLLocationCoordinate2DIsValid(myCoordinate)) {
  NSLog(@"Coordinate valid");
} else {
  NSLog(@"Coordinate invalid");
}

어쩌면 이것은 다른 사람을 도울 것입니다 :)

편집하다:

지적했듯이 Klaas의 게시물에서 다룬 초기화는 여전히 필요합니다.


CLLocation.h에 선언 된 상수 kCLLocationCoordinate2DInvalid를 사용할 수 있습니다.

다음을 사용하여 변수를 초기화하십시오.

CLLocationCoordinate2D myCoordinate = kCLLocationCoordinate2DInvalid;

나중에 다음으로 확인하십시오.

if( myCoordinate ==  kCLLocationCoordinate2DInvalid ) {
  NSLog(@"Coordinate invalid");
}

부가:

때때로 이것은 더 나은 해결책 인 것 같습니다 (Rick van der Linde가 다른 답변에서 언급했듯이).

if (CLLocationCoordinate2DIsValid(myCoordinate)) {
    NSLog(@"Coordinate valid");
} else {
    NSLog(@"Coordinate invalid");
}

Swift 추가 :

다음과 같이 Swift에서도 동일하게 수행 할 수 있습니다.

let myCoordinate = kCLLocationCoordinate2DInvalid

if CLLocationCoordinate2DIsValid(myCoordinate) {
    println("Coordinate valid")
} else {
    println("Coordinate invalid")
}

if ( coordinate.latitude != 0 && coordinate.longitude != 0 )
{
    ....
}

func isCoordinateValid(latitude: CLLocationDegrees, longitude: CLLocationDegrees) -> Bool {
    guard latitude != 0, longitude != 0, CLLocationCoordinate2DIsValid(CLLocationCoordinate2D(latitude: latitude, longitude: longitude)) else {
        return false
    }
    return true
}

참고 URL : https://stackoverflow.com/questions/8273107/how-to-check-that-cllocationcoordinate2d-is-not-empty

반응형