Swift 3.0中的stringByReplacingOccurencesOfString()

37

在使用Xcode 8.2 Beta的最新版本时,我在使用stringByReplacingOccurencesOfString()函数时遇到了问题。在使用该函数时,Xcode显示字符串的值类型没有成员。

var clockworkSmsUrl = "https://api.clockworksms.com/http/send.aspx?"
                       + "key=123456789abcd"
                       + "to="
                       + usersNumber!
                       + "&content="
                       + usersTextMessage!

clockworkSmsUrl.stringByReplacingOccurrencesOfString(" ", withString: "+")
var clockworkSmsURLconvert = NSURL(string: clockworkSmsUrl)

有任何想法吗?


4
请注意,有一个"编辑 -> 转换为 -> 最新的Swift语法"选项,你试过了吗?另外,你的代码丢弃了转换的结果,这是你真实的代码吗? - Martin R
这里有关于这些变化的所有学习资料:https://github.com/apple/swift-evolution/blob/master/proposals/0006-apply-api-guidelines-to-the-standard-library.md - Eric Aya
1
@MartinR,“编辑->转换为->最新的Swift语法”并不适用于所有情况,在我的情况下,我必须自己解决超过400个与转换相关的错误。 - infiniteLoop
@infiniteLoop:并非所有情况都是如此,但它确实可以自动修复问题。 - Martin R
1个回答

102

您可以使用以下方法修复您的代码片段:

clockworkSmsUrl.replacingOccurrences(of: " ", with: "+")

Swift 3 改变了导入 objc API 的方式。

请注意,您发布的代码存在一些问题:

  • 忽略了 replacingOccurrences 的结果。
  • 还有更多需要转义的字符。
  • URLCompontents 提供了更安全的构造 URL 的方式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接