【发布时间】:2015-10-20 11:26:20
【问题描述】:
如果我返回带有/不带空格的“测试”,它会起作用。但是,当我返回用户使用字符串中的 return 存储的值时,它会失败并返回 nil 错误,但是当我查看 NSLog 时,该值就在那里......
失败前的代码
var url:NSURL = NSURL(string:PassURL)!
var postData:NSData = post.dataUsingEncoding(NSASCIIStringEncoding)!
var postLength:NSString = String( postData.length )
var request:NSMutableURLRequest = NSMutableURLRequest(URL: url)
request.HTTPMethod = "POST"
request.HTTPBody = postData
request.setValue(postLength as String, forHTTPHeaderField: "Content-Length")
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.setValue("application/json", forHTTPHeaderField: "Accept")
var reponseError: NSError?
var response: NSURLResponse?
var urlData: NSData? = NSURLConnection.sendSynchronousRequest(request, returningResponse:&response, error:&reponseError)
if ( urlData != nil ) {
let res = response as! NSHTTPURLResponse!;
NSLog("Response code: %ld", res.statusCode);
if (res.statusCode >= 200 && res.statusCode < 300)
{
var responseData:NSString = NSString(data:urlData!, encoding:NSUTF8StringEncoding)!
NSLog("Response ==> %@", responseData);
var error: NSError?
//FAILS HERE
let jsonData:NSDictionary = NSJSONSerialization.JSONObjectWithData(urlData!, options:NSJSONReadingOptions.MutableContainers , error: &error) as! NSDictionary
NSLog
2015-07-29 08:52:26.622 testApp[20648:187508] Response ==> {"success":1, "test": "Going to Return Now
Second Line"}
fatal error: unexpectedly found nil while unwrapping an Optional value
但是值不为零...
NSError
Optional(Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Unescaped control character around character 41.) UserInfo=0x7f9c9942b050 {NSDebugDescription=Unescaped control character around character 41.})
未转义的字符就是return,怎么让json接受呢?
【问题讨论】:
-
请添加更多内核
-
@AshishKakkad 刚刚在失败前添加了更多代码
-
发生这种情况的原因是您的字符串通过解析器返回 nil。您可以将
urlData变量作为字符串发布吗? -
@theMonster 我无法输入 urlstring 但我得到了 NSError ---------> Optional(Error Domain=NSCocoaErrorDomain Code=3840 "操作无法完成。(Cocoa错误 3840.)"(字符 24 周围未转义的控制字符。)UserInfo=0x7f9c9942b050 {NSDebugDescription=字符 41 周围的未转义控制字符。})
-
尝试让 jsonData:NSDictionary = NSJSONSerialization.JSONObjectWithData(urlData!, options:nil , error: &error) 为! NSDictionary