我在Swift中使用Realm。我想按日期的相反顺序对PhotoCollectionViewController
中保存在Realm中的“图片”进行排序。我不知道该怎么办。如果您能将我的智慧借给我,我将很高兴。
Models.swift
import RealmSwift
class Entry: Object {
@objc dynamic var text = ""
@objc dynamic var date = Date()
let pictures = List<Picture>()
}
class Picture: Object {
@objc dynamic var fullImageName = ""
@objc dynamic var thumbnailName = ""
@objc dynamic var entry : Entry?
}
PhotoCollectionViewController.swift
import UIKit
import RealmSwift
class PhotoCollectionViewController: UICollectionViewController, UICollectionViewDelegateFlowLayout {
var pictures : Results<Picture>?
override func viewWillAppear(_ animated: Bool) {
getPictures()
}
func getPictures() {
if let realm = try? Realm() {
pictures = realm.objects(Picture.self)
//I want to sort pictures in the reverse order of date
collectionView?.reloadData()
}
}
…
}
答案 0 :(得分:2)
您应该可以使用以下代码对其进行排序
realm.objects(Picture.self).sorted(byKeyPath: "date", ascending: false)
答案 1 :(得分:1)
如果我的理解正确,您想将Entry
个对象排序,然后将flatMap
排序为一堆Picture
s:
var pictures = realm.objects(Entry.self)
.sorted(byKeyPath: "date", ascending: false)
.flatMap { $0.pictures }
答案 2 :(得分:1)
对不起,我自己解决了。我如下更改了“图片”, 我能够做到我所期望的。
pictures = realm.objects(Picture.self).sorted(byKeyPath: "entry.date", ascending: false)
谢谢您的回答和建议。