2013-12-12 5 views
1

У меня есть 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]; 

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

ответ

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]; 
+0

как я могу повторить соединение? – Eddie

+0

Поместите все это в метод, а затем замените '// retry' на' [self nameOfMethod]; ' – werm098

Смежные вопросы