-(void)getDataFromServer: (NSMutableDictionary *)dict
{
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@/doSomething",MainURL ]];
[AFJSONRequestOperation addAcceptableContentTypes:[NSSet setWithObject:@"text/html"]];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" path:nil parameters:dict];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON)
{
_myArray = JSON;
[_myTableView reloadData]; //Or do some other stuff that are related to the current `ViewController`
}
failure:^(NSURLRequest *request , NSURLResponse *response , NSError *error , id JSON)
{
NSLog(@"request: %@",request);
NSLog(@"Failed: %@",[error localizedDescription]);
}];
[httpClient enqueueHTTPRequestOperation:operation];
}
Yukarıdaki kodları, uygulamalarımın birinde 7 farklı yerde kullanıyorum. Kodun tam yığını, ViewControllers
'umun 7'sinde yineleniyor. Normalde yapmak istediğim, bir NSObject sınıfında kullanmak istediğim yöntemi koymak ve gerektiğinde onu ayırmak ve kullanmaktır, ancak yukarıdaki Async ve blokları kullanıyorum çünkü JSON'u ViewController
numaralı telefona geri gönderemiyorum. o ve & ben bunu gereken her ViewController
yukarıdaki yöntemi kopyalayıp yapıştırın gerekiyor.Blokları AFNetworking yöntemine mi geçirdiniz?
Amacım uygulamasında yalnızca tek bir yerde yukarıda var ve hala benim app etrafında farklı ViewControllers
onu aramak mümkün ve olmaktır ihtiyacım olan verileri al. NSNotification
veya KVO
gibi bir gözlemci kullanmaktan ve daha zarif bir çözüm aramaktan kaçınmak istiyorum. Bazı okumalardan sonra etrafta blok geçirme olasılığını fark ettim. Yukarıdaki ile olası bir çözüm mü? Bir kod örneği takdir edilecektir.
Gabriele'nin aşağıdaki yanıtına ek olarak, her istek için yeni bir AFHTTPClient döndürmekten kaçınmak isteyebilirsiniz. –
Cevabımı tam olarak bunun için düzenliyordum. Not için teşekkürler. –