2017-09-19 182 views
0

我想在coreData中保存moveRowAt上的对象列表。我将数据保存在一个单例中,并且它的顺序很好,但是当我更新Core Data时,它永远不会保存,而且顺序也是错误的。核心数据更新结果值

This is my list, I moved first item to 4 positionSingleton ordered

func changeKrakenPosition(source: Int, destiny: Int){ 

    let context = appDelegate.persistentContainer.viewContext 
    do { 
     var results = try context.fetch(fetchRequest) 
     var source = source 
     var destiny = destiny 
     var destinyItem = results[destiny] 
     var sourceItem = results[source] 

     if source < destiny { 
      var dif = destiny - source 
      for i in 0...dif { 
       if i != dif { 
        var krakenCoreDataToMove = results[source+1] 
        results[source] = krakenCoreDataToMove 
        source += 1 
       } else { 
        results[source] = destinyItem 
       } 
      } 
      results[destiny] = sourceItem 
     } else if destiny < source { 
      var dif = source - destiny 
      for i in 0...dif { 
       if i != dif{ 
        var krakenCoreDataToMove = results[source-1] 
        results[source] = krakenCoreDataToMove 
        source -= 1 
       } else { 
        results[source] = destinyItem 
       } 
      } 
      results[destiny] = sourceItem 
     } else { 
      //Moved to same position 
     } 

     var resultKra = results as! [Kraken] 
     for res in resultKra { 
      print("name: \(res.name) age \(res.age)") 
     } 

     do { 
      try context.save() 
     }catch{ 
      //Handle Error 
     } 

    } catch { 
     print("Error with request: \(error)") 
    } 

} 

first time ordering Core Data

首次效果很好,但从来没有保存,我再次进入,我谨新的第一项到最后一个位置,这是什么情况

its like i haven't done the first movement

保存在CoreData我认为会解决这个问题,但任何帮助或解决方案将是伟大的。

回答

1

我不确切地知道你想做什么,但顺便说一下,你可以轻松地订购你的数组。

struct CustomObject{ 
    let i: Int 
    let j: String 
} 

var array: [CustomObject] = [ 
    CustomObject(i: 1, j: "1"), 
    CustomObject(i: 0, j: "0"), 
    CustomObject(i: 3, j: "3"), 
          ] 

let newArray = array.sorted { (first, second) -> Bool in 
    first.i < second.i 
} 
+0

感谢秩序的解决方案,我希望做我保存奉命进入情境的新成果,并保持我的数据,我不知道有没有修改的结果阵列获取或我必须做别的东西,但我不能保存到核心数据 –

+0

请检查这个职位。 https://stackoverflow.com/questions/11600571/what-is-the-best-way-to-sort-a-core-data-entity – Alexkater