2017-08-10 2 views
0

ループを実行して各パスに配列を追加しますが、各パスに1を加えて1を追加します。数がpCodes.count同様に達したときに停止しないと思われるいくつかの理由(この時点で= 2)ループが終了していない、iOS、Swift

について

それは0と1を通る1で停止しないので、それがクラッシュ配列に2つの項目しかないので、2に達します。

以下は私のコードです。クラッシュ

トニーと

self.places = self.pCodes 
          for eachAddress in self.places { 

           let geocoder = CLGeocoder() 
           geocoder.geocodeAddressString(eachAddress) { 
            placemarks, error in 
            let placemark = placemarks?.first 
            let lat = placemark?.location?.coordinate.latitude 
            let lon = placemark?.location?.coordinate.longitude 
            let locationTitle = self.cNames[self.lt] 
            let latLon = ["title": locationTitle, "latitude":lat!, "longitude": lon!] as [String : Any] 

            self.posts.append(latLon) 
            print("Tony: \(self.posts)") 
            print("Tony: LTnum is: \(self.lt)") 

             print("Tony: count is \(self.pCodes.count)") 
            if self.lt < self.pCodes.count { 
            self.lt += 1 
            print("Tony: LTnum is: \(self.lt)") 
           } 
          } 
         } 
          self.showSightingsOnMap() 

:[[ "緯度":50.800523599999998、 "経度":-1.0723248000000001、 "タイトル": "ASDFASDは"]] トニー:LTnumは0 トニー:数は2です トニー:LTnumは:1 トニー:[["latitude":50.800523599999998、 "経度":-1.0723248000000001、 "タイトル": "ASDFASD"]、["latitude":50.802415099999997、 "経度" -1,0726989、 "title": "QWERQWE"]] トニー:LTnumは:1 トニー:数は2です トニー:LTnumは: 2 アプリが最適化されてコンパイルされました。ステッピングは奇妙な動作をする可能性があります。変数が使用できない可能性があります。 (lldb)

+0

。デバッガがブレークポイントで停止したように見えます。コードをステップバイステップで実行できることを伝えています(ただし、予期したとおりに動作しない可能性があると警告しています)。 – user1118321

答えて

0

これは私がそれを達成した方法と同じ結果を必要とする人のためです。ループしていて、2で終わっていました。配列に2つの要素しかなく、0.1.2から3つの要素を探していました。そこで、pCode配列-1と同じかどうかを調べましたもしそれが1からltを差し引かれたなら、2(3要素)を打つことは決してなく、これはうまくいった。クラッシュのように見えない

self.places =のself.pCodes

      for eachAddress in self.places { 
           let geocoder = CLGeocoder() 
           geocoder.geocodeAddressString(eachAddress) { 
            placemarks, error in 
            let placemark = placemarks?.first 
            let lat = placemark?.location?.coordinate.latitude 
            let lon = placemark?.location?.coordinate.longitude 
            let locationTitle = self.cNames[self.lt] 
            let latLon = ["title": locationTitle, "latitude":lat!, "longitude": lon!] as [String : Any] 

            self.posts.append(latLon) 

            if self.lt < (self.pCodes.count - 1) { 
            self.lt += 1 

            }else { 
             self.lt = (self.pCodes.count - 1) 
          } 
             self.showSightingsOnMap() 
         } 
        }