Swift — неоднозначное использование индекса sort () — Xcode 7.3

Я обновил свой Xcode до версии 7.3, которая совместима с iOS 9.3. Мой метод sort(), который является let sortArr = saveDeals?.sort({ $1[2] as! String > $0[2] as! String});, дает мне ошибку «неоднозначное использование индекса». Пожалуйста, дайте мне знать, что я могу сделать, чтобы исправить эту ошибку. Благодарю вас!

func sortSaveDealsArr(saveDeals: [AnyObject]?) -> [AnyObject]
{
    let sortArr = saveDeals?.sort({ $1[2] as! String > $0[2] as! String});
    return sortArr!;
}

person Arthur Liu    schedule 28.03.2016    source источник
comment
Что это saveDeals? Все зависит от этого.   -  person matt    schedule 28.03.2016


Ответы (1)


Проблема в том, что saveDeals печатается как [AnyObject]?. Таким образом, ваши $0 и $1 являются AnyObject, и вы не можете индексировать AnyObject. Вам нужно привести каждую из этих вещей к чему-то, что само по себе является подписчиком. Я не знаю, что в вашем массиве, поэтому я не могу сказать, что это будет. Является ли saveDeals массивом массивов? Если это так, вам нужно применить к нему saveDeals.

person matt    schedule 28.03.2016
comment
saveDeals на самом деле представляет собой массив массивов. Как только я изменил код на func sortSaveDealsArr(saveDeals: [[AnyObject]]?) -> [[AnyObject]] { let sortArr = saveDeals?.sort({ $1[2] as? String > $0[2] as? String}); return sortArr!; }, ошибка исчезла и работала как положено. Спасибо :) - person Arthur Liu; 29.03.2016
comment
Фантастика. Спасибо, что сообщили. - person matt; 29.03.2016