Подтвердить что ты не робот

Как проверить, что CLLocationCoordinate2D не пуст?

Как проверить, что CLLocationCoordinate2D не пуст?

4b9b3361

Ответ 1

Очень старая тема, но мне это было нужно сейчас, и я исправил свою проблему с помощью Клааса Херманнса с небольшим изменением.

Вместо

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

Мне пришлось использовать

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

Возможно, это поможет кому-то еще:)

Edit:

Как указывалось, инициализация, как описано в Клаасе, его должность, по-прежнему необходима.

Ответ 2

Вы можете использовать константу kCLLocationCoordinate2DInvalid, объявленную в CLLocation.h

Инициализируйте свою переменную

CLLocationCoordinate2D myCoordinate = kCLLocationCoordinate2DInvalid;

а затем проверьте его:

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

Дополнение:

Иногда это кажется еще лучшим решением (как упоминал Рик ван дер Линде в другом ответе):

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")
}

Ответ 3

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

Ответ 4

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