ios - 从远程服务器调用返回并评估错误对象时崩溃

标签 ios ios5 nsurlconnection

在进行远程调用后我有这段代码

    [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/

相关文章:

ios - NSNotificationCenter 上的观察者可以处理多个通知

ios - iphone - 如何在使用 Facebook IOS SDK 创建事件时添加图像

iphone - 如何管理多个异步 NSURLConnection 委托(delegate)?

ios - iOS 8.1 中的随机 SSL 错误。 (NSURLErrorDomain :-1200)

ios - 我需要更新我的 Google 云端硬盘登录信息吗?

ios - 无法将类型 'UITableViewController' 的值转换为 'UINavigationController'

ios - 如何释放 AudioFileReadPacketData 使用的内存 - Xcode 显示内存仍在使用中

objective-c - SoundcloudAPI Wrapper iOS5 身份验证错误

ios - 设置ZBar iOS SDK界面方向?

iOS:使用 AFNetworking 上传 ZIP 文件