CLLocationCoordinate2Dが空でないことを確認する方法は?
非常に古いトピックですが、私は今それを必要としており、クラース・ヘルマンズの助けを借りて、小さな変更を加えて問題を修正しました。
の代わりに
if( myCoordinate == kCLLocationCoordinate2DInvalid ) {
NSLog(@"Coordinate invalid");
}
私は使わなければなりませんでした
if (CLLocationCoordinate2DIsValid(myCoordinate)) {
NSLog(@"Coordinate valid");
} else {
NSLog(@"Coordinate invalid");
}
たぶんこれは他の誰かを助けるでしょう:)
編集:
指摘したように、Klaasの投稿で説明されている初期化はまだ必要です。
CLLocation.hで宣言されている定数kCLLocationCoordinate2DInvalidを使用できます。
で変数を初期化します
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")
}
if ( coordinate.latitude != 0 && coordinate.longitude != 0 )
{
....
}
func isCoordinateValid(latitude: CLLocationDegrees, longitude: CLLocationDegrees) -> Bool {
guard latitude != 0, longitude != 0, CLLocationCoordinate2DIsValid(CLLocationCoordinate2D(latitude: latitude, longitude: longitude)) else {
return false
}
return true
}