如何检查CLLocationCoordinate2D是否为空?

如何检查CLLocationCoordinate2D是否为空?

一个非常古老的话题,但我现在需要它,我在Klaas Hermanns的帮助下修改了我的问题,只做了一点改动。

代替

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

我不得不使用

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

也许这会帮助别人:)

编辑:

正如所指出的那样,Klaas的post中所述的初始化仍然是必要的。

您可以使用在CLLocation.h中声明的常量kCLLocationCoordinate2DInvalid

使用初始化您的variables

 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 ) { .... }