Цель C: сбой приложения при настройке соединения (во время обновления) - PullRequest
0 голосов
/ 10 июня 2011

У меня есть контроллер UItableView, содержащий изображения.У меня также есть кнопка обновления для повторного извлечения данных с сервера в формате JSON и повторного заполнения UITableView.

Однако я сталкиваюсь с проблемой, из-за которой иногда происходит сбой приложения при нажатии на кнопку обновления (ошибочноповедение).

Снимок экрана моего сбоя выглядит следующим образом

Отсюда видно, что ошибка возникает из-за синтеза свойства, и я предполагаю, что ошибка возникает из-за попытки доступа к свойствуaConnection enter image description here

Я проверил нить на левой панели, и на следующем снимке экрана видно, что сбой произошел где-то, когда я снова попытался установить aConnection.enter image description here

Я не уверен, что разместил здесь достаточно информации, но любые советы о том, как я могу действовать, будут высоко оценены

1 Ответ

1 голос
/ 10 июня 2011

Попробуйте использовать этот метод.

- (void)getData
{
    NSAutoreleasePool *pool = [ [ NSAutoreleasePool alloc ] init ];             
    NSString *urlGen = [[NSString alloc] initWithFormat:@"http://myurlforjson"];
    NSLog(@"%@",urlGen);
    NSURL *url = [NSURL URLWithString:urlGen]; // Modify this to match your url.    
    NSString *jsonreturn = [[NSString alloc] initWithContentsOfURL:url]; // Pulls the URL   
    NSData *jsonData = [jsonreturn dataUsingEncoding:NSUTF32BigEndianStringEncoding];   NSError *error = nil;
    // I am using specific JSON Libraries to parse json data
    NSDictionary * dict = [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:&error];
    if (dict)
    {
        self.storageDictionary = [dict objectForKey:@"JSONItemNAME"];
        [self parseNumberofStores:self.listData];                        
        [self.listData retain];     
    }
    [urlGen release];
    [jsonreturn release];
    [self.table reloadData];
    if ([self.listData count] <= 0 )
    {
        UIAlertView *al = [[UIAlertView alloc] initWithTitle:@"Oops !" message:@"Sorry ! No Items Found" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [al show];
        [al release];
        //[[self navigationController] popViewControllerAnimated:YES];
    }
    if ([activity isAnimating]) {
        [activity stopAnimating];
    }
    [tableview reloadData];
    [pool release]; 
}

Надеемся, что это решит вашу проблему.

Возможно, вам понадобится вызвать этот метод из некоторого события щелчка или загрузки, попробуйте использовать это

[NSThread detachNewThreadSelector: @selector(getData) toTarget:self withObject:nil];    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...