NSFastEnumerationIterator.Element(又名Any)没有下标成员

时间:2016-10-16 23:02:48

标签: ios swift swift3 predicate

将xcode更新为8版后,我收到此错误 enter image description here

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!

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

问题的最终来源是这一行:

var allArray : NSArray!

NSArray是一个Objective-C类。您正在尝试在Swift中编写Objective-C代码。唐'吨。这是 Swift 。使用 Swift 类型!写 Swift 代码!

这可能是一个 的数组。斯威夫特需要知道那是什么。例如,如果这是一个字典数组,那么它的类型将是[[AnyHashable:Any]]。如果您使用Swift类型,您的代码将正常工作,因为Swift将知道您的数组元素是什么。