2017-02-19 9 views
-1

, поэтому я не могу сортировать, используя swifts, встроенные в функцию сортировки.«Отсортировано (по:)», не возвращая Array/как отсортировать массив PFObjects в swift

У меня есть массив PFObjects, если вы не знаете, что это касается сферы этого вопроса, вероятно, лучше представить его как массив хеш-таблиц.

Я пытаюсь сортировать массив с помощью этого

self.courseArray = self.courseArray.sorted(by: sortClasses) 

и sortClasses выглядит следующим образом:

func sortClasses(_ x: Any, _ y:Any) ->Bool{ 
    return ((x as! PFObject).object(forKey: "priority") as! Int) < ((y as! PFObject).object(forKey:"priority") as! Int) 
} 

Где ключевой приоритет будет давать Int.

Однако, когда я делаю это я получаю эту ошибку

Cannot assign value of type '[NSFastEnumerationIterator.Element]' to type 'NSMutableArray' 

какие-либо предложения?

ответ

0

Просто используйте родной Swift Array, а не NSMutableArray.

Declare courseArray в

[PFObject]() 

и использовать ключ подписки

func sortClasses(_ x: Any, _ y:Any) -> Bool { 
    return (x as! PFObject)["priority"] as! Int < (y as! PFObject)["priority"] as! Int 
} 

Вы можете изменить другой API, связанный с NSMutableArray к родным коллегам.

+0

Проблема заключается в том, что курсорArray должен быть NSMutableArray для других мест в коде, знаете ли вы, в чем корень этой проблемы, оттуда я, вероятно, смогу выяснить, что мне нужно делать. –

+0

Нет необходимости использовать 'NSMutableArray' в Swift. Подумайте о том, чтобы обновить * другие пятна *, чтобы соответствовать сильной системе Swift. Это того стоит, поверьте. – vadian

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