Как проверить, что CLLocationCoordinate2D не пуст?
Как проверить, что CLLocationCoordinate2D не пуст?
Ответ 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
}