在索引0处插入元素NSManagedObject

时间:2016-01-22 05:54:18

标签: ios swift core-data nsmanagedobject

我无法在第一个索引处插入元素CoreData

let appDelegate =
UIApplication.sharedApplication().delegate as! AppDelegate

let managedContext = appDelegate.managedObjectContext

let entity =  NSEntityDescription.entityForName("Thing",
  inManagedObjectContext:managedContext)

let thing = NSManagedObject(entity: entity!,
  insertIntoManagedObjectContext: managedContext)

thing.setValue(name, forKey: "name")
thing.setValue(category, forKey: "category")

do {
  try managedContext.save()
} catch let error as NSError {
}

如何在索引0处插入thing?是否有可能或者我必须重写所有数据?谢谢!

1 个答案:

答案 0 :(得分:0)

您无法在特定索引处插入新的name。商店中保存的订单是CoreData和SQLite要管理的。您应该确保按照所需的顺序获取对象。这是通过为您的获取请求指定排序描述符NSSortDescriptor)来完成的。因此,如果您想要let nameSort = NSSortDescriptor(key:"name", ascending:true) fetchRequest.sortDescriptors = [nameSort] 订购的商品,您可以使用:

fcntl(fd, F_SETFL, 0)

如果您需要其他排序顺序,请根据需要向实体添加属性以表示该排序顺序,并为您创建的每个对象设置适当的值。