有没有办法在核心数据库中获取最后插入的项目?
答案 0 :(得分:4)
这将返回最后插入的对象。
setFetchLimit:1和setFetchOffset:[所有条目的数量 - 1]
答案 1 :(得分:1)
方法1:
我用示例代码扩展了@Olsi答案,包括获取所有实体数量的行。这是我如何做到的:
let appDelegate: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context: NSManagedObjectContext = appDelegate.managedObjectContext
let request = NSFetchRequest(entityName: "MyEntity")
let allElementsCount = context.countForFetchRequest(request, error: nil)
request.fetchLimit = 1
request.fetchOffset = allElementsCount - 1
request.returnsObjectsAsFaults = false
方法2:
然而,还有另一种使用sortDescriptors
的方法。不确定哪个更合适,他们都做同样的工作:
let appDelegate: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context: NSManagedObjectContext = appDelegate.managedObjectContext
let request = NSFetchRequest(entityName: "MyEntity")
request.sortDescriptors = [NSSortDescriptor(key: "momentTimeStamp", ascending: false)]
request.fetchLimit = 1
request.returnsObjectsAsFaults = false
答案 2 :(得分:0)
我不认为Core Data本身支持这一点。我想你最好的办法是在你的实体中添加一个“dateInserted”属性。