我正在通过使用SOAP WebService发送数据进行一些测试,这是我的代码的一部分,当我尝试通过我的MAC的Wifi发送数据时它们是错误的:
let task = session.dataTaskWithRequest(theRequest, completionHandler: {data, response, error -> Void in
print("Response Login: \(response)")
let strData = NSString(data: data!, encoding: NSUTF8StringEncoding)!
print("Body Login: \(strData)")
if error != nil
{
print("Error Login: " + error!.description)
}
let parser = NSXMLParser(data: data!)
parser.delegate = self
parser.parse()
if(self.success == "1"){
self.successSoap = 1
}
它说strData是零。那我该怎么办?这是一个正常的错误,因为它不是对真实设备的测试?如果他们没有互联网连接,我不想再发送另一个成功价值。
错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
Printing description of error:
(NSError?) error = domain: "NSURLErrorDomain" - code: 4294966287 {
ObjectiveC.NSObject = {}
}
答案 0 :(得分:1)
数据是Optional
类型。当你使用data!
时,你会告诉编译器相信我,我知道这里的数据不能是nil
。
您希望修改完成处理程序以考虑出错的可能性。
let task = session.dataTaskWithRequest(theRequest, completionHandler: { data, response, error -> Void in
if let error = error {
// an error occurred processing the request, deal with the error
} else if let response = response as? NSHTTPURLResponse, let data = data {
// check response status code
if (200..<300) ~= response.statusCode {
let parser = NSXMLParser(data: data)
parser.delegate = self
parser.parse()
} else {
// server generated on error
}
} else {
// something went wrong
}
}