使用包含" ^"的字符串创建NSURL;性格给出了一个零

时间:2016-01-16 16:36:27

标签: ios string swift nsurl

当我尝试创建一个NSURL时,String包含" ^"应用程序崩溃的角色,控制台说:

fatal error: unexpectedly found nil while unwrapping an Optional value

之前有没有遇到过这种情况?

修改

似乎NSURL初始化程序提供了一个nil对象,并且在尝试强制解包时,应用程序崩溃。

如何避免使用包含此类字符的String获取NSURL的这个nil实例?

修改

以下是一些代码,以澄清事情:

let searchMethod = "advancedsearch.php?"
let searchParameters = "q=title:Book^100%20OR%20description:Book^15%20OR%20collection:Book^10%20OR%20language:Book^10%20OR%20text:Book^1&mediatype:texts+AND+NOT+hidden:true+AND+collection:texts&sort%5B%5D=titleSorter+asc&rows=10&output=json&start=1"
NSURL(string:"\(baseURL)/\(searchMethod)\(searchParameters)")
print("url \(url)")

NSURL是零,控制台给出:

url nil

1 个答案:

答案 0 :(得分:0)

" ^" URL编码不允许使用符号 将此用于swift:

let encodedURLString = urlString.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet())

或者对于Objective-C:

NSString *encodedURLString = [urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLHostAllowedCharacterSet]];