UITableView падает при попытке прокрутки (застрял на этом в течение нескольких часов) - PullRequest
0 голосов
/ 12 ноября 2011

Я пытался решить эту проблему часами.Мое приложение продолжает падать, когда я пытаюсь прокрутить.Я заглянул в раздел для повторного использования, но все еще застрял.

ОБНОВЛЕНИЕ: я запускаю xcode 4.2 с ARC и у меня возникла ошибка доступа.

ОБНОВЛЕНИЕ 2: Я попытался определить проблемуиспользуя зомби, но я все еще не могу решить проблему.снимок экрана с зомби: http://img440.imageshack.us/img440/7651/instruments.png

ОБНОВЛЕНИЕ 3 [проблема решена]: я убедился, что все выходы были [самостоятельно установлены ___: nil] в ViewDidUnload.Я также создал свойство для добавленного представления вместо создания представления в файле .m.Мне также помог комментарий внизу: получить "EXC_BAD_ACCESS" при попытке dismissModalViewController после того, как родительский контроллер представления был viewDidUnload

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return [self.sortedKeys count];
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    return [self.sortedKeys objectAtIndex:section];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    listData2 =[self.tableContents objectForKey:
    [self.sortedKeys objectAtIndex:section]];
    return [listData2 count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    questionTitle = [[self.tableContents objectForKey:[self.sortedKeys objectAtIndex: [indexPath section]]] objectAtIndex:[indexPath row]];

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Foobar"];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Foobar"];
        cell.selectionStyle = UITableViewCellSelectionStyleBlue;
        cell.textLabel.textColor = [UIColor blueColor];
    }

    cell.textLabel.text = questionTitle;

    return cell;
}

Ответы [ 2 ]

0 голосов
/ 12 ноября 2011

Вместо установки questionTitle в вашем cellForRowAtIndexPath, который (предположительно) является свойством вашего ViewController, определите локальную строку:

NSString *questionTitle2 = ...

, а затем используйте его для установки метки ячейки:

cell.textLabel.text = questionTitle2;

Имеет ли это какое-то значение?

0 голосов
/ 12 ноября 2011

Стек трассировки был бы действительно полезен, но я также считаю, что вам следует переместиться listData2 = .. в viewWillApear:.

- (void)viewWillAppear:(BOOL)animated
{
    listData2 =[self.tableContents objectForKey: [self.sortedKeys objectAtIndex:section]];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [listData2 count];
}

Также попробуйте добавить NSLogs к другим UITableViewметоды, например:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    NSLog(@"numberOfSectionsInTableView: self.sortedKeys count: %i",[self.sortedKeys count]);
    return [self.sortedKeys count];
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    NSLog(@"titleForHeaderInSection: self.sortedKeys object: %@"[self.sortedKeys objectAtIndex:section]);
    return [self.sortedKeys objectAtIndex:section];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...