这很奇怪。我有一些代码,我从AFNetworking自述文件中剪切并开始与我的项目集成。到目前为止它看起来像这样:
-(void) retrieveProjectsWithSuccess:(SPERetrieveProjectsSuccess) successBlock
failure:(SPERetrieveFailure) errorBlock {
[_manager GET:[_baseURL absoluteString]
parameters:nil
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
successBlock([NSSet set]);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
errorBlock(error);
}];
}
之前设置了 _manager
:
_manager = [AFHTTPRequestOperationManager manager];
当我从单元测试中调用此代码时,请求将转到服务器,该服务器会按预期响应,但不会调用成功或失败块。
我已经将执行追踪到了AFNetworking AFURLConnectionOperation
课程中。一切似乎都是正确的,所有设置和块都已设置好,请求看起来很好。在所有NSURLConnectionDelegate
委托回调中设置断点,我看到connection:willSendRequest:redirectResponse:
和connectionShouldUseCredentialStorage:
被调用,然后什么都没有。没有其他委托方法被调用。
有没有人知道什么是错的?
我已成功从我的REST客户端访问服务器并且它正在工作,我看到它会记录消息,告诉我它已从应用程序代码回复了请求。
我的单元测试是使用XCTestExpectation
,它在成功和错误块中得到满足,并且测试正在等待AFNetworking回复。
真奇怪。