Как отсортировать результаты в области - PullRequest
0 голосов
/ 12 января 2019

Я использую Realm со Swift. Я хочу отсортировать «картинки», сохраненные в Realm, по PhotoCollectionViewController в обратном порядке дат. Я не знаю, что мне делать. Я был бы рад, если бы вы могли одолжить мне свою мудрость.

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()
        }
    }
…
}

Ответы [ 3 ]

0 голосов
/ 12 января 2019

Если я правильно понял, вы хотите отсортировать Entry объекты, а затем flatMap в кучу Picture s:

var pictures = realm.objects(Entry.self)
                   .sorted(byKeyPath: "date", ascending: false)
                   .flatMap { $0.pictures }
0 голосов
/ 13 января 2019

Извините, я решил это сам. Я изменил «картинки» следующим образом, Я смог сделать то, что ожидал.

pictures = realm.objects(Picture.self).sorted(byKeyPath: "entry.date", ascending: false)

Спасибо за ответы и советы.

0 голосов
/ 12 января 2019

Вы должны быть в состоянии отсортировать его с помощью следующего кода

realm.objects(Picture.self).sorted(byKeyPath: "date", ascending: false)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...