【发布时间】:2014-11-11 20:22:45
【问题描述】:
我正在尝试让 code from github 自动完成工作,但在第 6 行 (data.filter) 上遇到一个错误,即 Dictionary 没有名为 filter 的成员。但是我在文档中读到的所有内容都表明字典应该有一个过滤方法。我已经尝试了展开、self 等的所有可能组合,但编译器随后将这些更改注册为错误。
显然发生了一些我不明白的事情 - 感谢任何指导。
var data = Dictionary<String, AnyObject>()
func applyFilterWithSearchQuery(filter : String) -> Dictionary<String, AnyObject>
{
var lower = (filter as NSString).lowercaseString
if (data.count > 0) {
var filteredData = data.filter ({
if let match : AnyObject = $0["DisplayText"]{
return (match as NSString).lowercaseString.hasPrefix((filter as NSString).lowercaseString)
}
else{
return false
}
})
}
return filteredData
}
【问题讨论】:
-
这个 repo 中的 swift 项目充满了错误,我认为它还没有完成:如果你不想花一些时间来修复它作为学习实践,这不是最好的例子。
filter属性必须被留下,因为作者试图重构代码并将NSArray(使用filteredArrayUsingPredicate方法)替换为Dictionary。 -
@A-Live - 非常感谢您对 MPGTextField 的评估。我将专注于学习,并在其他地方寻找实现。感谢您为我节省了很多麻烦。
-
@A-Live - 非常感谢您对 MPGTextField 的评估。我将专注于学习,并在其他地方寻找实现。感谢您为我节省了很多头撞墙的麻烦。 2010 Ray Wenderlich Obj-C 示例看起来很简单,但我很难让它在 Swift 中运行 - here is another thread on this approach。