如何检查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 ) { .... }