2016-10-08 4 views
0
var country = "" 
if placemark.country != nil{ 
     country = placemark.country! 
    } 
self.awareLocationDetaile.text = country 

に価値を与えていないガード文の変数私は

guard let country = placemark.country else{       
    return  
} 
self.awareLocationDetaile.text = country 

が、不幸な国このコードガード文を変換しようと、私は場合は私に価値を与えるガードステートメントを使用する場合は値を持ちません。私は何が欠けていますか?

UPDATE:

 CLGeocoder().reverseGeocodeLocation(location) { (clPlacemark :[CLPlacemark]?,error : NSError?) in 
      if error != nil { 
       print(error) 
      }else{ 
       if let placemark = clPlacemark?[0]{ 
       // print(placemark) 
        //MARK:- we are a good programmer 
//     var country = "" 
//     if placemark.country != nil{ 
//      country = placemark.country! 
//     } 
//     self.awareLocationDetaile.text = country 


        guard let country = placemark.country else{ 

         return 

        } 


        self.awareLocationDetaile.text = country 
       } 

      } 
     } 
+0

@pedrouan私の更新セクションをご確認ください –

+0

以下の回答をお試しください。 – pedrouan

+0

@pedrouanこのエラースロー: - 文字列からダウンキャスト?ストリングのみにはオプションをアンラップします。あなたは '!'を使うつもりでしたか? 。私は何をすべきか ? –

答えて

3

ガード文は、動作するようになっているとおりに動作します。あなたは何も欠けていません。それはあなたがしたいことではなく、何をするのかを行います。あなたの最初のコードサンプルでは、​​あなたが、彼女は王室の「私たち」89注歳の時にコードの彼女の非常に最初の行を書いた後に女王が書いたコメントをコピーしたようだ

self.awareLocationDetaile.text = placemark.country ?? "" 

としてずっと簡単に書くことができます。一方

//MARK:- we are a good programmer 

、ガード文の中のreturn文が閉鎖からを返しますので、その後何も実行されません。

関連する問題