SORU
16 EKİM 2013, ÇARŞAMBA


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
9 Kasım 2013, CUMARTESİ


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Deany Boii

    Deany Boii

    27 Kasım 2007
  • Howard Pinsky

    Howard Pinsk

    6 AĞUSTOS 2006
  • MugenPowerBatteries

    MugenPowerBa

    8 EKİM 2010