使用AFNetworking 2.0下面的代码是有效的,通过互联网来获取数据:如何同步使用AFNetworking 2.0库?
NSString *URLPath = @"http://www.raywenderlich.com/downloads/weather_sample/weather.php?format=json";
NSDictionary *parameters = nil;
[[AFHTTPRequestOperationManager manager] GET:URLPath parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"success: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"failure: %@", error);
}];
但我想在单元测试同步测试这些请求。
// This code would be blocked.
dispatch_semaphore_t sema = dispatch_semaphore_create(0);
NSString *URLPath = @"http://www.raywenderlich.com/downloads/weather_sample/weather.php?format=json";
NSDictionary *parameters = nil;
[[AFHTTPRequestOperationManager manager] GET:URLPath parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"success: %@", responseObject);
dispatch_semaphore_signal(sema);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"failure: %@", error);
dispatch_semaphore_signal(sema);
}];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
dispatch_release_ARC_compatible(sema);
我如何可以获取使用AFNetworking 2.0库同步数据(测试中Kiwi这些代码):但是,如果使用这样当GCD信号受阻?
为什么你不能使用信号灯? –
首先,思考你正在测试的代码 - 你真的想为AFNetworking编写单元测试吗?他们已经有自己的。那么,你试图用这个来测试呢? –
我想测试其他提供的Web API。 –