在进行远程调用后我有这段代码
[NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
{
NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] ;
NSString *responseError = [[NSString alloc] initWithData:error encoding:NSUTF8StringEncoding] ;
...
在最后一行有时代码会崩溃。我无法重现崩溃,但我的一个猜测是,如果错误对象为 nil,那么崩溃就会发生,对吗?我应该先检查错误是否不为零吗?
这是 crashalytics 的错误:
Reason:
-[NSURLError bytes]: unrecognized selector sent to instance 0x22b215d0
这不支持我对错误发生原因的猜测。知道为什么会发生这种崩溃吗?
谢谢!
最佳答案
您不能将 NSError
对象传递给 initWithData:
方法(它需要一个 NSData
对象。很可能您得到一个编译器警告。永远不要忽略编译器警告。您的代码应该编译干净。
要获取错误消息,请使用正确的 NSError
方法,例如 localizedDescription
。
NSString *responseError = [error localizedDescription];
关于ios - 从远程服务器调用返回并评估错误对象时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13444858/