测试测试 | ✗ |
语言语言 | Obj-CObjective C |
许可权 | MIT |
发布最后发布 | 2015年3月 |
由 未声明 维护。
依赖项 | |
AFNetworking | ~> 1.0 |
ReactiveCocoa | ~> 1.0 |
AFNetworking-ReactiveCocoa 让 AFNetworking 具有响应性。
在 Podfile 中添加 pod 'AFNetworking-ReactiveCocoa'
。
#import <AFNetworking/AFNetworking.h>
#import <ReactiveCocoa/ReactiveCocoa.h>
#import <AFNetworking-ReactiveCocoa/AFNetworking-ReactiveCocoa.h>
- (void)requestAndSubscribe {
AFHTTPClient *client = ...;
NSURLRequest *request = ...;
// Enqueue the request and get a signal.
RACSignal *signal = [client rac_enqueueHTTPRequestOperationWithRequest:request];
// Subscribe the signal, which will send a tuple of the request operation
// and the response object.
[signal
subscribeNext:^(RACTuple *tuple) {
RACTupleUnpack(AFHTTPRequestOperation *operation, id responseObject) = tuple;
NSLog(@"success: operation=%@, responseObject=%@", operation, responseObject);
}
error:^(NSError *error) {
// The error object is the same one that is passed to the failure handler
// of the enqueued request operation, except one additional key-value pair
// in `userInfo` as shown below.
AFHTTPRequestOperation *operation = [error.userInfo objectForKey:@"AFHTTPRequestOperation"];
NSLog(@"error: operation=%@", operation);
}
completed:^{
NSLog(@"completed");
}];
}
AFNetworking-ReactiveCocoa 添加了这些方法
@interface AFHTTPClient (RACSupport)
- (RACSignal *)rac_enqueueHTTPRequestOperation:(AFHTTPRequestOperation *)requestOperation;
- (RACSignal *)rac_enqueueHTTPRequestOperationWithRequest:(NSURLRequest *)urlRequest;
- (RACSignal *)rac_enqueueBatchOfHTTPRequestOperations:(NSArray *)requestOperations;
- (RACSignal *)rac_enqueueBatchOfHTTPRequestOperationsWithRequests:(NSArray *)urlRequests;
- (RACSignal *)rac_getPath:(NSString *)path parameters:(NSDictionary *)parameters;
- (RACSignal *)rac_postPath:(NSString *)path parameters:(NSDictionary *)parameters;
- (RACSignal *)rac_putPath:(NSString *)path parameters:(NSDictionary *)parameters;
- (RACSignal *)rac_deletePath:(NSString *)path parameters:(NSDictionary *)parameters;
- (RACSignal *)rac_patchPath:(NSString *)path parameters:(NSDictionary *)parameters;
@end
@interface AFHTTPRequestOperation (RACSupport)
- (void)rac_setCompletionBlockWithSubject:(RACSubject *)subject;
@end
请查看头部文件以获取详细文档。