Nasıl AFNetworking 2 ile istek toplu iş için?
AFNetworking 2.0 ile iOS 7 için bir uygulama yeniden düzenliyorum ve aynı anda istekleri toplu gönderme ve ilerlemelerini izleme sorunu içine koşuyorum. AFHTTPClient
, enqueueBatchOfHTTPRequestOperations:progressBlock:completionBlock:
yöntemi vardı eski AFNetworking bu açıkça refactored ve biraz isteklerle enqueue hakkında kafam karıştı.
AFHTTPSessionManager
bir alt sınıf oluşturduk ve POST:...
GET:...
yöntemleri sunucusu ile iletişim kurmak için kullanıyorum. Ama kodda bir şey bulmak ve dokümanlar, birden çok kişi eski AFHTTPClient
gibi aynı anda enqueue/edemem.
Bulabildiğim tek şey AFURLConnectionOperation
batchOfRequestOperations:progressBlock:completionBlock:
belgelenmemiş bir yöntemdir ama bunu iOS 6 yol gibi görünüyor.
Açıkça toplu iş istekleri için kullanacağım NSURLSession
yeni konsept içinde bir şeyler eksik ya da yeni AFNetworking bir özelliği bakıyorum. Birisi doğru yolda bana yardımcı olabilir umut!
tl;dr:Nasıl AFHTTPSessionManager
benim sınıfla istekleri toplu olarak gönderebilir miyim?
CEVAP
Teşekkürler bu işlevi artık çalışmıyor neden GitHub issue where Mattt explains bağlantı için Sendoa. Bu NSURLSession
yeni yapısı ile mümkün değil neden net bir nedeni var; Görevleri sadece işlemleri bağımlılıkları veya toplu kullanarak eski yöntemle işe yaramaz bu yüzden operasyon değil.
Bu çözüm, toplu iş istekleri NSURLSession
, burada kullanarak mümkün kılan dispatch_group
(sözde)kodunu kullanarak hazırladım.
// Create a dispatch group
dispatch_group_t group = dispatch_group_create();
for (int i = 0; i < 10; i ) {
// Enter the group for each request we create
dispatch_group_enter(group);
// Fire the request
[self GET:@"endpoint.json"
parameters:nil
success:^(NSURLSessionDataTask *task, id responseObject) {
// Leave the group as soon as the request succeeded
dispatch_group_leave(group);
}
failure:^(NSURLSessionDataTask *task, NSError *error) {
// Leave the group as soon as the request failed
dispatch_group_leave(group);
}];
}
// Here we wait for all the requests to finish
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
// Do whatever you need to do when all requests are finished
});
Eğer bu AFNetworking birleştirilecek bir şey güzel uygulandığında () ise bu daha kolay yapmak için yapar ve Matt ile tartışmak bir şey yazmak bakmak istiyorum. Bence kütüphanede kendisi ile böyle bir şey yapmak için çok iyi olurdu. Ama bunun için biraz boş zamanım olduğunda bakacağım.
Nasıl bir toplu iş dosyası komut satır...
Nasıl bir HTTP node.js istek yapmak iç...
Nasıl komut satırı curl ile istek başl...
Nasıl bir toplu iş dosyaları için uzan...
Nasıl otomatik kapanmasını önlemek içi...