2012-02-23 18 views
5

'ye dönüşüyor İyi çalışan aşağıdaki kodları kullanıyorum ancak üzerinde biraz daha fazla kontrole ihtiyacım var ve özellikle de 0,9 içinde Reachability kodunu kullanmaya başlamanız gerekiyor. AFNetworking (AFJSONRequestOperation), 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]; 
} 

ben "setReachabilityStatusChangeBlock" yararlanmak böylece ben bir AFHTTPClient kullanmaya genelinde bu aynı kodu dönüştürebilir nasıl çalışmak mücadele ediyorum.

cevap

12

Sadece

+ (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; 
} 

bir singleton ile AFHTTPClient bir alt sınıfını oluşturmak Sonra getPath yöntemini

[[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]); 
     }]; 
çağrı
İlgili konular