ios – 在Swift 2中替换了字符串

前端之家收集整理的这篇文章主要介绍了ios – 在Swift 2中替换了字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我正在尝试为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)
        }

所以现在我得到的错误是,“’map’不可用:在序列上调用’map()’方法.”有任何想法吗?此外,我不肯定链接将起作用,因为它应该是lmgtfy但我无法提交此问题,除非我将URL更改为谷歌.

解决方法

从Swift 2开始,String不再符合 SequenceType,因此您无法在其上调用generate.相反,您需要使用characters属性获取符合SequenceType的 String.CharacterView.

同样使用Swift 2:map是SequenceType扩展中的一种方法.因此,您将其称为方法,而不是自由函数

let str = "ab cd ef gh"
let replaced = String(str.characters.map { $0 == " " ? "+" : $0 }) 
// "ab+cd+ef+gh"

你也可以这样做:

let replaced = str.stringByReplacingOccurrencesOfString(" ",withString: "+")
// "ab+cd+ef+gh"

猜你在找的iOS相关文章