NSURLSession, повторите попытку загрузки данных

У меня есть сеанс NSURLSession, который я использую для загрузки некоторых данных из облака. я использую этот звонок

  [[session dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
 if (!error) {
     NSHTTPURLResponse *httpResp = (NSHTTPURLResponse*) response;
     if (httpResp.statusCode == 200) {
        NSError *jsonError;
        myArray = [[NSArray alloc] init];
        myArray = [NSJSONSerialization JSONObjectWithData:data
                                                         options:NSJSONReadingAllowFragments
                                                           error:&jsonError];
     }
  }
}] resume];

Теперь несколько раз я прохожу через это, и myArray пуст, поэтому я хочу знать, могу ли я поставить галочку внутри этого, если myArray пуст, повторите попытку загрузить данные!


person Eddie    schedule 12.12.2013    source источник


Ответы (1)


Просто добавьте оператор if, чтобы проверить, равен ли счетчик массива нулю, и если да, то повторите попытку подключения.

[[session dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
 if (!error) {
     NSHTTPURLResponse *httpResp = (NSHTTPURLResponse*) response;
     if (httpResp.statusCode == 200) {
        NSError *jsonError;
        myArray = [[NSArray alloc] init];
        myArray = [NSJSONSerialization JSONObjectWithData:data
                                                     options:NSJSONReadingAllowFragments
                                                       error:&jsonError];
       //Check for an empty array
       if ([myArray count] == 0) {
           //retry
       }
     }
  }
}] resume];
person werm098    schedule 12.12.2013
comment
как повторить попытку подключения? - person Eddie; 12.12.2013
comment
Поместите все это в метод, а затем замените //retry на [self nameOfMethod]; - person werm098; 12.12.2013