2017-02-14 7 views
-1

Мне нужно сохранить каждую строку как объект, но в следующем методе сохраняется только последняя строка.Быстрое сохранение данных с тремя ядрами

Не могли бы вы рассказать мне, как я могу сохранить все?

  let appDelegate = UIApplication.shared.delegate as! AppDelegate 

      let context = appDelegate.persistentContainer.viewContext 
      if let doc = HTML(html: sentHTML, encoding: .utf8) { 
       print(doc.title!) 
       var kCounter = 2 
       var Variab = false 
       let newInfo = NSEntityDescription.insertNewObject(forEntityName: "MarksTable", into: context) 
       for link in doc.xpath("//td | //link") { 

        if (kCounter % 2) == 0 { 

         newInfo.setValue(link.text!, forKey: "lesson") 
        } 
        if (kCounter % 2) == 1 { 

         newInfo.setValue(link.text!, forKey: "mark") 
        } 
        kCounter += 1 

        do 
        { 
         try context.save() 
         print("saved ",link.text!) 

        } 
        catch 
        { 

        } 
       } 

ответ

0

Если вы хотите создать новый управляемый объект в каждой итерации, переместите let newInfo в петлю

for link in doc.xpath("//td | //link") { 
    let newInfo = NSEntityDescription.insertNewObject(forEntityName: "MarksTable", into: context) 
    ... 

Далее настоятельно рекомендуется сохранять контекст сразу после петли.