从Core Data,iOS获取上次插入的项目

有没有办法让核心数据库中的最后一个插入的项目?

这将返回最后一个插入的对象。

setFetchLimit:1和setFetchOffset:[所有条目的数量 – 1]

我不认为这是由Core Data本地支持的。 我想你最好的select是添加一个“dateInserted”属性到你的实体。

方法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:
Howerver还有另一种使用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