Быстрая сортировка массива всегда в порядке возрастания - PullRequest
0 голосов
/ 09 марта 2019

Я пытаюсь показать список массивов, отсортированных по его метке времени в порядке убывания (сначала самые новые -> сначала самые высокие ts), поэтому я создал метод загрузки и метод сортировки:

 func getBlogsByAuthor(){
    self.allBlogs.removeAll()
    for authorId in self.authorIds{
        db.collection("Blogs").whereField("authorId", isEqualTo: authorId)
            .getDocuments() { (querySnapshot, err) in
                if let err = err {
                    print("Error getting documents: \(err)")
                } else {
                    for document in querySnapshot!.documents {
                        let ts = document.get("ts") as! Int
                        let title = document.get("title") as! String
                        let body = document.get("body") as! String
                        let authorId = document.get("authorId") as! String
                        let state = document.get("stateios") as? String
                        let imageUrl = document.get("imageUrl") as! String
                        let id = document.documentID as! String
                        let blogObject  = BlogObject.init(title: title , body: body, imageUrl: imageUrl , authorId: authorId , state: state ?? "Null" , id: id, ts: ts )
                        self.allBlogs.append(blogObject)


                    }
                    self.sortDataset()

                }
        }
    }

}

func sortDataset(){
    self.allBlogs.sorted(by: { $0.ts! < $1.ts! })
    self.rv.reloadData()
}

Проблемаявляется то, что значения всегда показывают самые низкие значения ts, независимо от того, изменяю ли я его с self.allBlogs.sorted(by: { $0.ts! < $1.ts! }) на self.allBlogs.sorted(by: { $0.ts! > $1.ts! })

1 Ответ

2 голосов
/ 09 марта 2019

Вам нужно

self.allBlogs.sort { $0.ts! < $1.ts! } // mutating sort in place 

, так как sorted(by возвращает результат, который вы игнорируете и не переназначаете, он будет

self.allBlogs = self.allBlogs.sorted(by: { $0.ts! < $1.ts! })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...