2015-07-25 4 views
2

У меня есть массив, который загружается из базы данных MYSQL с использованием PHP и конвертируется в JSON, данные загружаются в таблицу, но теперь я хочу отсортировать эти данные, как я могу сделай это? Я хотел бы отсортировать их по последним time = в моем массиве объектов.Swift 2: Сортировка объекта/многомерного массива

JSON результат получил с NSURLSession:

(
     { 
     id = 8; 
     time = "2015-07-24 17:12:00"; 
     title = "World is full of good people!"; 
    }, 
     { 
     id = 10; 
     time = "2015-07-24 18:44:30"; 
     title = "One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head."; 
    } 
) 

Я прочитал некоторые вопросы/ответы на stackoverflow.com и люди говорят, что я должен использовать sorted на моем массиве, но я думаю, что метод ушел в быстром 2.

Это то, что я получаю когда я пытаюсь это arr.sorted

«NSArray» не имеет элемент с именем «отсортированных»

Я нахожу яблоко sorting document, но не смог найти какой-нибудь хороший ответ, чтобы описать, как использовать его.

+0

Это может зависеть от кода, 're использовать для этого. Было бы лучше разместить соответствующую часть вашего кода, чтобы было легче определить, что не так. – Antonio

+0

'sort' не ушел, это просто не глобальная функция. Теперь это функция в массиве. – HAS

ответ

4

После того, как у вас есть данные в Swift массив и дата хранится в виде NSDate (который не то, что вы показываете выше), вы можете использовать sortInPlace, например:

s.sortInPlace { (a, b) -> Bool in 
     return a.time.timeIntervalSinceReferenceDate < b.time.timeIntervalSinceReferenceDate 
    } 
+0

Дата конвертируется в NSDate в cellForIndexPath, поэтому в основном используйте sortInPlace? – Xrait

+1

cellForRowAtIndexPath запрашивает данные для конкретной ячейки. Он должен быть уже отсортирован, когда вы туда доберетесь. Вы должны отсортировать его сразу после его извлечения из базы данных. Или даже лучше, сортируйте его в запросе базы данных MySql и передайте его на уже отсортированное мобильное устройство. – MirekE

Смежные вопросы