在索引 0 处插入元素,NSManagedObject
Insert element at index 0, 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
?有可能还是我必须重写所有数据?谢谢!
您不能在特定索引处插入 新的NSManagedObject
。商店中的物品顺序由 CoreData 和 SQLite 管理。相反,您应该确保按照您想要的顺序 fetch 对象。这是通过为您的获取请求指定一个 排序描述符 (NSSortDescriptor) 来完成的。所以如果你想要按 name
排序的东西,你可以使用:
let nameSort = NSSortDescriptor(key:"name", ascending:true)
fetchRequest.sortDescriptors = [nameSort]
如果您想要其他排序顺序,如有必要,请向您的实体添加一个属性来表示该排序顺序,并为您创建的每个对象设置适当的值。
我在 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
?有可能还是我必须重写所有数据?谢谢!
您不能在特定索引处插入 新的NSManagedObject
。商店中的物品顺序由 CoreData 和 SQLite 管理。相反,您应该确保按照您想要的顺序 fetch 对象。这是通过为您的获取请求指定一个 排序描述符 (NSSortDescriptor) 来完成的。所以如果你想要按 name
排序的东西,你可以使用:
let nameSort = NSSortDescriptor(key:"name", ascending:true)
fetchRequest.sortDescriptors = [nameSort]
如果您想要其他排序顺序,如有必要,请向您的实体添加一个属性来表示该排序顺序,并为您创建的每个对象设置适当的值。