2016-03-28 5 views
0

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

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

Что такое _is_ 'saveDeals'? Все зависит от этого. – matt

ответ

2

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

+0

saveDeals на самом деле представляет собой массив массивов. Как только я изменил код на 'func sortSaveDealsArr (saveDeals: [[AnyObject]]?) -> [[AnyObject]] { let sortArr = saveDeals? .sort ({$ 1 [2] as? String> $ 0 [2] как? String}); return sortArr !; } ', ошибка исчезла и работала по назначению. Спасибо :) –

+0

Фантастический. Спасибо за отчетность. – matt