Ios 从Swift 2转换为Swift 3时出现的奇怪问题

Ios 从Swift 2转换为Swift 3时出现的奇怪问题,ios,swift,swift2,swift3,Ios,Swift,Swift2,Swift3,将这行代码从 a[0] = (a[0]! as NSArray).filteredArrayUsingPredicate(predicate) 到 我收到一个错误“无法推断通用参数元素” 然而,改变功能是XCode的建议。 这里会出现什么问题以及如何解决它?因此,您的a被声明为DictionaryStrage代码。使用Swift数组和本机筛选函数。@vadian但filtered也是Swift函数,由Xcode建议。Xcode migrator不是代码优化器。它只是尝试将现有代码更新为Swif

将这行代码从

a[0] = (a[0]! as NSArray).filteredArrayUsingPredicate(predicate)

我收到一个错误“无法推断通用参数元素” 然而,改变功能是XCode的建议。
这里会出现什么问题以及如何解决它?

因此,您的a被声明为DictionaryStrage代码。使用Swift数组和本机筛选函数。@vadian但filtered也是Swift函数,由Xcode建议。Xcode migrator不是代码优化器。它只是尝试将现有代码更新为Swift 3语法。记录a并显示初始化它的位置。a[0]是什么类型?在这个问题上没有足够的信息。您可能应该只使用[0].filterpredicate。非常感谢!错误现在消失了。错误信息非常模糊1
a[0] = (a[0]! as NSArray).filtered(using:predicate)
func filtered(using predicate: NSPredicate) -> [Any]
a[0] = (a[0]! as NSArray).filtered(using:predicate) as Array<AnyObject>