Сортировка комментариев WordPress в Swift по дате и родительскому комментарию

У меня есть набор комментариев к статье для сайта WordPress, хранящейся в виде объектов в приложении iOS. Некоторые ключевые свойства объекта Comment-object:

public let id: Int //Unique identifier of comment
public let parentID: Int //ID of the comment this comment is replying to. If it is a top level comment the value is 0.
public let dateCreated: Date //The date the comment was created

Я хочу отображать эти комментарии так UITableViewже, как на веб-сайте WordPress (и на большинстве других веб-сайтов), где комментарии сортируются по дате, но комментарии для детей отображаются под их родителями, а также отсортированы по дате, если есть несколько ответов на один комментарий. Самый простой способ представить комментарии, кажется, имеет один раздел UITableViewс одной строкой за комментарий, где комментарии для детей будут отступать, чтобы указать, что они отвечают на другие комментарии (опять же, тот же дизайн, что и WordPress и большинство других сайтов)

Я изо всех сил пытаюсь найти разумный код для сортировки комментариев. Мне удалось выполнить многоуровневую сортировку, отсортировав сначала по parentID, затем по дате, но это не дает правильного результата (ответы на комментарии отображаются внизу списка, а не после их родительского комментария):

var sortedComments = comments.sorted { //comments is the array of comment-objects
    if $0.parentID != $1.parentID {
        return $0.parentID < $1.parentID
    } else {
        return $0.dateCreated < $1.dateCreated
    }
}

Я предполагаю, что алгоритм, лежащий в основе этого, может быть повторно использован независимо от языка программирования, поэтому, если у кого-то есть алгоритм, независимо от языка программирования, который ценится (но эй, если у кого-то есть определенный Свифт-ответ, я не против!)

ios,swift,wordpress,sorting,

0

Ответов: 0

Сортировка комментариев WordPress в Swift по дате и родительскому комментарию

У меня есть набор комментариев к статье для сайта WordPress, хранящейся в виде объектов в приложении iOS. Некоторые ключевые свойства объекта Comment-object:

public let id: Int //Unique identifier of comment
public let parentID: Int //ID of the comment this comment is replying to. If it is a top level comment the value is 0.
public let dateCreated: Date //The date the comment was created

Я хочу отображать эти комментарии так UITableViewже, как на веб-сайте WordPress (и на большинстве других веб-сайтов), где комментарии сортируются по дате, но комментарии для детей отображаются под их родителями, а также отсортированы по дате, если есть несколько ответов на один комментарий. Самый простой способ представить комментарии, кажется, имеет один раздел UITableViewс одной строкой за комментарий, где комментарии для детей будут отступать, чтобы указать, что они отвечают на другие комментарии (опять же, тот же дизайн, что и WordPress и большинство других сайтов)

Я изо всех сил пытаюсь найти разумный код для сортировки комментариев. Мне удалось выполнить многоуровневую сортировку, отсортировав сначала по parentID, затем по дате, но это не дает правильного результата (ответы на комментарии отображаются внизу списка, а не после их родительского комментария):

var sortedComments = comments.sorted { //comments is the array of comment-objects
    if $0.parentID != $1.parentID {
        return $0.parentID < $1.parentID
    } else {
        return $0.dateCreated < $1.dateCreated
    }
}

Я предполагаю, что алгоритм, лежащий в основе этого, может быть повторно использован независимо от языка программирования, поэтому, если у кого-то есть алгоритм, независимо от языка программирования, который ценится (но эй, если у кого-то есть определенный Свифт-ответ, я не против!)

00ИОС, быстрый, WordPress, сортировка,
Похожие вопросы