Как проверить, что CLLocationCoordinate2D не пуст?
Как это проверить CLLocationCoordinate2D не пустой?
3 ответа:
очень старая тема, но мне это было нужно сейчас, и я исправил свою проблему с помощью Klaas Hermanns, с небольшим изменением.
вместо
if( myCoordinate == kCLLocationCoordinate2DInvalid ) { NSLog(@"Coordinate invalid"); }
Я должен использовать
if (CLLocationCoordinate2DIsValid(myCoordinate)) { NSLog(@"Coordinate valid"); } else { NSLog(@"Coordinate invalid"); }
может быть, это поможет кому-то еще :)
Edit:
Как указывалось, инициализация, как описано в Klaas его пост, по-прежнему необходима.
вы можете использовать константу 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") }