【问题标题】:Get last record from Core data base从核心数据库获取最后一条记录
【发布时间】:2017-02-16 11:00:49
【问题描述】:

如何以正确的方式从数据库中获取最后一条记录?现在我正在获得最后一张唱片,但我无法播放它。警告说“从 '[Class]' 转换为不相关的类型 'Class' 总是失败”。是否有其他方法可以从此结果中获取属性?

   let _context = DataBaseController.getContext()
                    let _fetchRequest:NSFetchRequest<Class> = Class.fetchRequest()
                    do {
                        let _allElements = try _context.count(for: _fetchRequest)
                        _fetchRequest.fetchLimit = 1
                        if _allElements == 1 {
                            _fetchRequest.fetchOffset = _allElements
                        } else {
                            _fetchRequest.fetchOffset = _allElements - 1
                        }
                        _fetchRequest.returnsObjectsAsFaults = false
                        do {
                            let _result = try DataBaseController.getContext().fetch(_fetchRequest) as! Ping

                        } catch {
                            print("Error \(error)")
                        }
                    } catch {
                        print("Error \(error)")
                    }

提前致谢!

【问题讨论】:

  • 我认为即使你只取一个,它也会返回一个数组,可能是let results = try DataBaseController.getContext().fetch(_fetchRequest) as [Ping]; let _result = results[0] as Ping?

标签: swift core-data


【解决方案1】:

Core Data fetch 总是返回一个托管对象数组

let _result = try DataBaseController.getContext().fetch(_fetchRequest) as! [Ping]
if !_result.isEmpty {
   let lastItem to _result[0]
}

【讨论】:

  • 通过 _result[0] 的含义,它将返回数据库中的最后一条记录?这是后进先出法?
  • 使用 1 的 fetchLimit 数组中只能有 一个 项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-29
  • 1970-01-01
  • 2017-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-13
相关资源
最近更新 更多