2016-10-16 2 views
0

после обновления Xcode до 8 версии, я получил эту ошибку enter image description hereNSFastEnumerationIterator.Element (ака Любой) не имеет членов индексных

searchArray = allArray.filter({$0["test"] as? String == findCode 
     let resultText: NSString = ($0["test"] as? String) 
     return (resultText.range(of: searchText, options: NSString.CompareOptions.caseInsensitive).location) != NSNotFound 
}) as NSArray! 

Любые мысли?

+0

Пожалуйста, также разместите свой код как текст в своем вопросе. – rmaddy

+0

Уже, спасибо! @rmaddy – Vitalyz123

+0

Проблема в том, что компилятор понятия не имеет, что такое тип 'allArray'. И я тоже, если на то пошло. Если вам нужна помощь, покажите соответствующие объявления. Что это за вещь? Что такое 'allArray' и откуда оно взялось? – matt

ответ

1

Основным источником вашей проблемы является эта строка:

var allArray : NSArray! 

NSArray является класс Objective-C. Вы пытаетесь написать код Objective-C в Swift. Не. Это Swift. Используйте Swift типов! Напишите Swift код!

Это предположительно массив что-то. Свифт должен знать, что это. Например, если это массив словарей, то его тип будет [[AnyHashable:Any]]. Если вы используете типы Swift, ваш код будет работать, потому что Swift будет знать, каковы элементы ваших массивов.

+0

Спасибо, это помогло, но что я должен сделать в случае var dict = allArray.object (at: (indexPath as NSIndexPath) .row) as? NSDictionary Ошибка: значение типа [[AnyHashable: Any]] не имеет объекта-члена ' – Vitalyz123

+0

Просто используйте subscriptip. Вы все еще пишете код ObjectiveC. Напишите быстрый код! В самом деле. – matt

+0

Да, ты прав. благодаря – Vitalyz123

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