在GET请求期间,我在处理responseObject
中的空AFHTTPRequestOperation
时遇到问题。我正在使用AFNetworking库。
如果responsteObject的内容为“0个对象”,则当我尝试访问responseObject中不可用的键时,我的应用程序崩溃。我该如何优雅地处理呢?这是我的代码的样子:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:requestURL parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(responseObject[@"NotAvailableKey"];
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
如果responseObject的内容不是“0个对象”,则代码可以正常工作。即使我试图访问不在responseObject中的键。
最佳答案
您的代码崩溃,因为responseObject
有时不在NSDictionary中。因此,它不会响应objectForKey:
。您应该检查什么是responseObject类:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:requestURL parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
if ([responseObject isKindOfClass:[NSDictionary class]]
{
NSLog(responseObject[@"NotAvailableKey"]);
}
else
{
NSLog(@"Incorrect responseObject");
}
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
关于ios - 如何在AFHTTPRequestOperation中处理空的responseObject,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23570031/