2016-09-04 1 views
1

Так что у меня есть проблема, когда я вызываю save после помещения некоторых предметов в объект. Я перехожу к API, и я загружаю некоторую информацию, а затем я сохраняю ее в другой системе для временного использования, однако .save(), похоже, сохраняет только 2 элемента без специального шаблона, в котором он выбирает. Может кто-нибудь объяснить, в чем проблема?Сохранение в Parse в цикле while swick

let url = URL(string: link) 
    let spots = PFObject(className:"spot") 
    let task = URLSession.shared.dataTask(with: url!) { (data, response, error) in 

     if error != nil { 
      print(error) 
     } 
     else{ 
      if let urlContent = data{ 

       do{ 
        let jsonResult = try JSONSerialization.jsonObject(with: urlContent, options: JSONSerialization.ReadingOptions.mutableContainers) 
        let results = (jsonResult as! NSDictionary)["results"] 
        let venueList = (results as! NSArray) 
        //print(jsonResult) 
        var i = 0 
        while i < venueList.count{ 
         let venues = venueList[i] as! NSDictionary 
         let name = venues["name"] as! String 
         let geometry = venues["geometry"] as! NSDictionary 
         let location = geometry["location"] as! NSDictionary 
         let cLat = location["lat"] as! Double 
         let cLon = location["lng"] as! Double 
         let vPoint = PFGeoPoint(latitude: cLat, longitude: cLon) 
         //print(name," ", vPoint) 
         spots["venue"] = name 
         spots["name"] = vPoint 
         do{ 
          try HotSpots.save() 
          print("Saved! ",name," ", vPoint) 
         } 
         catch{ 
          print("Save Error") 
         } 
         i+=1 
        } 




       } 
       catch{ 
        print("JSON Error") 
       } 
      } 
     } 
    } 
    task.resume() 
} 
+1

Что такое 'HotSpots'? Side-note: 'while i <...' и увеличение счетчика - очень плохой синтаксис в Swift. Обычный синтаксис - это 'for-in'. – vadian

+0

Я обязательно починю это! Спасибо –

ответ

2

Вопрос заключается в том, что вы сохраняете два значения всегда в одном PFObject экземпляре.

Переместить линию let spots = PFObject(className:"spot") в петлю.

PS: Используйте родные типы Swift. Например, это более эффективно

let location = geometry["location"] as! [String:Double] 
let cLat = location["lat"]! 
let cLon = location["lng"]! 
+0

Это сделало, спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^