ios - 如何在 NSURL 字符串中包含大括号?

标签 ios swift url

我有以下代码,但 NSURL 不喜欢大括号。它崩溃了。如果我在“格式:”之后的字符串之前放置一个@符号,它什么都不做。如果我尝试使用\来转义大括号,它是行不通的。我该如何进行这项工作?

func getUrlWithUpdateText(updateText: String!) -> NSURL {
    let escapedUpdateText = updateText.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!
    let urlString = String(format: "http://localhost:3000/api/Tests/update?where={ \"name\": %@ }", escapedUpdateText)
    let url = NSURL(string: urlString)
    return url!
}

我意识到还有另一个类似的线程,但它并没有转化为这种情况,一方面这是 Swift,而不是 Objective-C。

最佳答案

一旦构建完成就转义:

func getUrlWithUpdateText(updateText: String) -> NSURL? {
    let toEscape = "http://localhost:3000/api/Tests/update?where={ \"name\": \(updateText) }"
    if let escapedUpdateText = toEscape.stringByAddingPercentEncodingWithAllowedCharacters(
        NSCharacterSet.URLHostAllowedCharacterSet()),
       url = NSURL(string: escapedUpdateText) {
        return url
    }
    return nil
}

用法:

if let res = getUrlWithUpdateText("some text #%$") {
    print(res)
} else {
    // oops, something went wrong with the URL
}

关于ios - 如何在 NSURL 字符串中包含大括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31083786/

相关文章:

ios - 如何手动输入10000个原始数据到core data?

ios - 解析错误代码 206 : Cannot modify user (Parse Server)

java - 如何从 xml 文件中获取字符串形式的 URL?

url - 回调中的 ShareThis 设置属性不起作用

ios - Cocoapods 和 fork 项目 (AFOauth2Client)

ios - 在模拟器中运行 Apple Watch glance 应用程序时出现问题

macos - Swift - NSMenuItem Popover 没有获得焦点

node.js - S3如何查找对象是否具有预签名URL?

ios - 将多个 NSData 文件保存到 iOS 中的文档文件夹

ios - 迭代用户以仅在 Swift 中显示他们的帖子