所以我正在尝试为iOS 9构建我的应用程序并遇到一个问题.之前,我有一个按钮,它会从标签中取出字符串并将其添加到一个字符串中,该字符串会使一个人lmgtfy并自动搜索字符串的内容,但现在我遇到了map()的错误.以下是在iOS 8中运行的代码:
@IBAction func googleButton() {
let replaced = String(map(originalString.generate()) { $0 == " " ? "+" : $0 })
if let url = NSURL(string: "http://google.com/?q=\(replaced)") {
UIApplication.sharedApplication().openURL(url)
}
print(replaced)
}
Run Code Online (Sandbox Code Playgroud)
所以现在我得到的错误是,"'map'不可用:在序列上调用'map()'方法." 有任何想法吗?此外,我不肯定链接将起作用,因为它应该是lmgtfy但我无法提交此问题,除非我将URL更改为谷歌.
ABa*_*ith 15
从Swift 2开始,String不再符合SequenceType,因此你无法调用generate 它.相反,您需要使用该characters属性来获取String.CharacterView符合的属性SequenceType.
同样使用Swift 2:map是一个扩展的方法SequenceType.因此,您将其称为方法,而不是自由函数:
let str = "ab cd ef gh"
let replaced = String(str.characters.map { $0 == " " ? "+" : $0 })
// "ab+cd+ef+gh"
Run Code Online (Sandbox Code Playgroud)
你也可以这样做:
let replaced = str.stringByReplacingOccurrencesOfString(" ", withString: "+")
// "ab+cd+ef+gh"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2091 次 |
| 最近记录: |