NSData json error



在我的程序中,我使用此代码从服务器获取json:

func getJSON(urlToRequest: String) -> NSData{
    return NSData(contentsOfURL: NSURL(string: urlToRequest)!)!
}

urlToRequest是创建使用信息的形式,所以问题是,如果我只输入英文字母的形式,我得到urlToRequest:

"http://example.com/join?joinName=Max&joinEmail=my@email.com&joinPass=myPass&joinBirth=01.01.1990&joinGender=1"一切正常,但如果我把例如俄罗斯字母的形式,并得到链接:

"http://example.com/join?joinName=Максим&joinEmail=my@email.com&joinPass=myPass&joinBirth=01.01.1990&joinGender=1"

我得到错误与NSData fatal error: unexpectedly found nil while unwrapping an Optional value

请帮忙,我该如何解决这个问题?

您应该使用stringByAddingPercentEncodingWithAllowedCharacters来净化您的URL:

let str = "http://example.com/join?joinName=Максим&joinEmail=my@email.com&joinPass=myPass&joinBirth=01.01.1990&joinGender=1"
let url = NSURL(string: str.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLFragmentAllowedCharacterSet())!)

最新更新