【发布时间】:2015-12-03 14:52:16
【问题描述】:
我绝望了,
我有一个在 IPAD、IPAD 2 甚至 IPAD Air 模拟器上运行良好的 IOS 应用程序,但尝试在 IPAD AIR 设备上运行此应用程序时,应用程序在发出 HTTPS 请求并获取一些数据时崩溃。
对于 HTTPS 请求,我使用 AFNetworking 框架。
有没有人有类似问题的想法或经验?
我已经阅读了很多关于 stackoverflow 的文章,并试图寻找僵尸,但没有找到。
- (void) executeRequestType:(RequestType)type_
requestMethod:(RequestMethod)method_
layout:(NSString *)layout_
action:(NSString *)action_
parameters:(NSDictionary *)params_
successBlock:(SuccessBlock)success_ {
_status = RequestStatusInitate;
//NSLog(@"%@ - %@ - %@", layout_, params_, action_);
NSString *parmstr = @"";
if (params_) {
parmstr = [self parmeterStringFromDictionary:params_];
}
NSString *strURL = [NSString stringWithFormat:@"%@fmi/xml/fmresultset.xml?-db=%@&-lay=%@%@&%@",SERVER_URL,DB_NAME, layout_, parmstr, action_];
NSLog(@"request str %@", strURL);
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
NSURL *url = [NSURL URLWithString:strURL];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
if (method_ == RequestMethodDelete) {
[request setHTTPMethod:@"DELETE"];
}
AFXMLRequestOperation *operation = [AFXMLRequestOperation
XMLParserRequestOperationWithRequest:request
success:^(NSURLRequest *request, NSHTTPURLResponse *response, NSXMLParser *XMLParser) {
NSLog(@"%li",(long)response.statusCode);
NSObject *object = success_(XMLParser);
NSString *requestType = [NSString stringWithFormat:@"%d", type_];
NSDictionary *responseDict;
responseDict = @{ DATA: object,
REQUEST_TYPE: requestType};
_status = RequestStatusCompleted;
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
objc_msgSend(_delegate, @selector(callerDidFinishLoading:receivedObject:), self, responseDict);
//Trying to call "callerDidFinishLoading" EXC_BAD_ACCESS is Thrown
}
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, NSXMLParser *XMLParser) {
_status = RequestStatusCompleted;
NSLog(@"%@",error);
objc_msgSend(_delegate, @selector(caller:didFailWithError:), self, error);
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}];
[operation start];
_status = RequestStatusInProgress;
}
【问题讨论】:
-
编译器应该对 objc_msgSend() 的裸用发出警告。
-
我是这个项目的新手,有很多警告。无法花时间修复每个警告:/
-
沉没成本谬误。 :) 随着时间的推移,我保证你会浪费更多的时间试图通过警告来寻找有意义的新警告,而不是花费时间修复它们。不过,我完全同情你在这方面的立场。
标签: ios objective-c ipad afnetworking