2017-08-10 33 views
0

我有一個循環運行,增加了一個數組每個通過,但我也檢查一個數字,每次通過並添加1到它。循環沒有結束,iOS,Swift

出於某種原因,似乎當數目達到相同pCodes.count(其此時= 2)

因爲它不以1停止運行通過0和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 託尼:count是2 Tony:LTnum是:1 Tony:[[「緯度」:50.800523599999998,「經度」:-1.0723248000000001,「標題」:「ASDFASD」],[「緯度」:50.802415099999997,「經度」 -1.0726989,「title」:「QWERQWE」]] Tony:LTnum是:1 Tony:count是2 Tony:LTnum是: 2 應用程序編譯與優化 - 步進可能會表現怪異;變量可能不可用。 (lldb)

+0

這看起來並不像一個崩潰。它看起來像調試器停在斷點處。它告訴你可以單步執行代碼(儘管它警告它可能無法按預期工作)。 – user1118321

回答

0

對於任何需要相同結果的人,這是我如何實現它的。它正在循環,並且結束爲2,只有2個元素在數組中,它已經從0.1.2中尋找3個元素,只有2個。所以我做了一次檢查,看它是否與pCode數組-1相同如果它從lt中扣除1,所以它從來沒有命中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() 
         } 
        }