【问题标题】:how to get "Newest Record" when fetching record With Magical Record使用 Magical Record 获取记录时如何获取“最新记录”
【发布时间】:2012-12-11 13:31:28
【问题描述】:

获取记录时如何获取最新记录?

例如:

  • 第一次迭代我用对象名称 Country 保存“Singapore”,
  • 第二次迭代我用对象名称 Country,second 保存“USA”

现在当我拿它时

SomeDatabase *Country = [SomeDatabase MR_findFirst];

NSLog(@"Country Name---->%@",Country.Name); 

我得到“新加坡”,

我想获取插入到 coredata 的最后一条记录,它应该是“USA”。

【问题讨论】:

  • ASAIK,Core Data 不维护最后添加的对象的顺序。所以我猜你在这里不走运,除非你将创建日期存储在专用字段中。

标签: ios core-data magicalrecord


【解决方案1】:

最直接的方法是向您的实体添加“createdDate”或类似的日期字段。然后你可以简单地使用查询:

[MyEntity MR_findFirstOrderedByAttribute:@"createdDate" ascending:NO];

【讨论】:

    【解决方案2】:

    SWIFT 3 如果你想添加额外的查询参数:

    let predicate = NSPredicate(format: "(attribute1 = %@ && attribute2 = %@ && date <= %@)", argument1, argument2, yourdate as NSDate)
    let fetch = YourCCEntity.mr_requestAllSorted(by: "date", ascending: false, with: predicate)
    let latestObject = YourCCEntity.mr_executeFetchRequestAndReturnFirstObject(fetch)
    

    as NSDate 是必需的,因为存在 Xcode 错误(某些 Swift 类不能使用 NSPredicate 参数)

    【讨论】:

      猜你喜欢
      • 2018-10-17
      • 2020-02-28
      • 1970-01-01
      • 2020-07-26
      • 1970-01-01
      • 2012-02-12
      • 2012-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多