2012-02-23 25 views
5

Tôi có mã sau hoạt động tốt nhưng tôi cần kiểm soát nhiều hơn một chút và đặc biệt cần bắt đầu sử dụng mã Khả năng hiển thị trong 0.9.AFNetworking (AFJSONRequestOperation) chuyển thành AFHTTPClient

NSString *urlString = [NSString stringWithFormat:@"http://example.com/API/api.php"]; 
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]]; 

AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { 
    _self.mainDictionary = [JSON valueForKeyPath:@"elements"]; 
    [_self parseLiveData]; 
} failure:^(NSURLRequest *request , NSURLResponse *response , NSError *error , id JSON){ 
    //NSLog(@"Failed: %@",[error localizedDescription]);   
}]; 

if (operation !=nil && ([self.sharedQueue operationCount] == 0)) { 
    [self.sharedQueue addOperation:operation]; 
} 

Tôi đang đấu tranh để làm việc ra làm thế nào tôi có thể chuyển đổi mã này cùng qua việc sử dụng một AFHTTPClient để tôi có thể tận dụng lợi thế của "setReachabilityStatusChangeBlock".

Trả lời

12

Chỉ cần tạo một lớp con của AFHTTPClient với một singleton

+ (id)sharedHTTPClient 
{ 
    static dispatch_once_t pred = 0; 
    __strong static id __httpClient = nil; 
    dispatch_once(&pred, ^{ 
     __httpClient = [[self alloc] initWithBaseURL:[NSURL URLWithString:@"http://example.com/API"]]; 
     [__httpClient setParameterEncoding:AFJSONParameterEncoding]; 
     [__httpClient registerHTTPOperationClass:[AFJSONRequestOperation class]]; 
    }); 
    return __httpClient; 
} 

Và sau đó gọi phương thức getPath

[[YourHTTPClient sharedHTTPClient] 
    getPath:@"api.php" 
    parameters:nil 
     success:^(AFHTTPRequestOperation *operation, id JSON){ 
       _self.mainDictionary = [JSON valueForKeyPath:@"elements"]; 
       [_self parseLiveData]; 
     } 
     failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
      //NSLog(@"Failed: %@",[error localizedDescription]); 
     }]; 
Các vấn đề liên quan