展开可选值时 NSURL nil |角色不工作?

NSURL nil when unwrapping an optional value | character not working?

let urlstr = "http://api.themoviedb.org/3/discover/movie?api_key={key}&with_genres=28|27|80|12|53|10752&sort_by=popularity.desc&page=\(pageNum)"

字符串看起来像这样:

http://api.themoviedb.org/3/discover/movie?api_key={key}&with_genres=28|27|80|12|53|10752&sort_by=popularity.desc&page=1

当我在浏览器中复制和粘贴时工作正常 但是当我尝试创建一个 NSURL 时 returns nil

let url = NSURL(string: urlstr)

我试图擦除 |来自字符串并且确实有效,但我需要它来满足我的要求,所以我不能这样做,有什么办法可以解决这个问题吗?

"way past this" 是提供 合法的 URL 字符串。你的是非法的,因为管道字符 - 正如你正确推断的那样 - 所以你将从 NSURL(string: urlstr).

得到 nil 结果

只需用等效的百分比转义序列替换所有这些管道,一切都会好起来的。您可以通过调用 NSURL(scheme:host:path:) 来获取 NSURL 来帮助您。