当我尝试创建一个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
答案 0 :(得分:0)
" ^
" URL编码不允许使用符号
将此用于swift:
let encodedURLString = urlString.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet())
或者对于Objective-C:
NSString *encodedURLString = [urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLHostAllowedCharacterSet]];