ios - 按日期获取最后 25 个 CoreData 条目

标签 ios swift core-data

我有一个核心数据实体:

@objc(Messages)
class Messages: NSManagedObject {

     @NSManaged var receiver: String?
     @NSManaged var time: NSDate?
     @NSManaged var message: String?
}

其中我使用 var time = NSDate()

节省时间

我尝试像这样获取数据:

func fetchData(limit: Int, sort: Bool, sorter: String) -> Array<AnyObject> {
    let freq = NSFetchRequest(entityName: self.coreDataEntity)
    freq.fetchLimit = limit
    if sort == true {
        freq.sortDescriptors = [NSSortDescriptor(key: sorter, ascending: false)]
    }
    do {
        try self.fetchArray = context.executeFetchRequest(freq)
    } catch let error as NSError {
        print("CoreData - Fehler (fetch): \(error.localizedDescription)")
    }

    fetchArray.reverse()
    return fetchArray!
}

我想要的是最后 25 个条目。最新条目应该是数组中的最后一个。

我这样调用它:

var messages:Array<AnyObject> = []
...
self.messages = fetchData(25, sort: true, sorter: "time")

但是fetchArray.reverse()什么也没做

最佳答案

反向返回一个由相反顺序的元素组成的数组,它不会重新排列现有数组中的项目。只需修改为:

let newArray = fetchArray.reverse()
fetchArray = newArray
return fetchArray!

关于ios - 按日期获取最后 25 个 CoreData 条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32187086/

相关文章:

objective-c - 设置核心数据对象的标量属性时的 EXC_BAD_ACCESS (IOS 5)

ios - 通过 iOS 6 工具栏上的按钮关闭 map

ios - 当 UILabel 文本溢出 Swift 3 中的 View 时,使 UILabel 文本滚动或以字幕样式动画

ios - 在 AFNetworking 中设置用户代理

ios - 在 iOS 中使用 google map SDK 将矩形变成相等的网格

ios - 使用 SharedData 在 iPhone 和 Watch 之间传递更新

ios - 删除行后从核心数据中保存和获取 Collection View 单元格

ios - 新的 EventKit EKCalendar 不会创建?

ios - 使用单击的按钮通过 tableView 传递数据

ios - UIPrintPageRenderer 不使用 UIMarkupTextPrintFormatter 绘制任何内容