我在collectionView中移动行,我没有对数据进行排序所以所有新单元都插入到表的末尾,但是当我移动单元格时,我想要专门选择应该在其中移动的索引核心数据中的实体,这样,collectionView将自动在更新的行中显示移动的单元格而无需任何额外的工作,是否可以在不创建其他ID属性的情况下进行?
该实体名为List,它有两个属性,task_name和task_bool。
var myData:[NSManagedObject] = []
let appDelegate =
UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext!
let newItem: AnyObject = NSEntityDescription.insertNewObjectForEntityForName("List",
inManagedObjectContext:
managedContext)
var deleltedRow = myArray[indexPath.row].valueForKey("task_name") as! String
myData.removeAtIndex(indexPath.row)
newItem.setValue(deleltedRow, forKey: "task_name"); // how would I add atIndex: here??
newItem.setValue(true, forKey: "task_bool"); // how would I add atIndex: here??
答案 0 :(得分:3)
核心数据维护无序的对象集合。如果要以特定顺序显示这些对象,则需要在提取时或之后对它们进行排序。这意味着对象需要在其中包含一些您可以排序的信息。您目前没有任何内容,因此您需要添加order
类型属性并使用适当的值进行维护。
答案 1 :(得分:1)
核心数据不按有序方式存储对象。如果要按特定顺序显示这些对象,则需要在实体中使用属性/属性,以便按照自己的方式对列表进行排序。
向实体添加 int i,j;
printf("%d\n" , scanf("%d %d", &i,&j) );
属性并将其用于排序可能是个好主意。