Сбой табличного представления при доступе к массиву Dicitonarys - PullRequest
1 голос
/ 21 июля 2011

Все,

Когда загружается мое табличное представление, оно получает доступ к нескольким методам делегата.Когда я настраиваю ячейку, она вызывает этот метод (где «connectedList» представляет собой массив словарей):

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    // Configure the cell...
    VUWIManager *vuwiManager = [VUWIManager sharedVuwiManager];
    NSLog(@"%@", [[vuwiManager linkedList]objectAtIndex:indexPath.row]);
    NSLog(@"TESTZOMGOFDSOJFDSJFPODJSAPFDS");
    cell.textLabel.text = [[vuwiManager linkedList]objectAtIndex:indexPath.row];
    return cell;
}

Он вылетает на линии cell.textLabel.text = [[vuwiManager linkedList]objectAtIndex:indexPath.row]; - я знаю, что я делаю что-то не такздесь, но я не уверен, что это такое.И снова связанный список представляет собой NSMutableArray из NSDictionarys.

Редактировать: если я вызываю cell.textLabel.text = [[vuwiManager linkedList]objectAtIndex:indexPath.row];, он возвращает: { IP = "192.168.17.1"; desc = "description"; } в отладчике.Просто подумал, что дам немного подробностей о форматировании.

Спасибо

Ответы [ 3 ]

1 голос
/ 21 июля 2011

Установка NSString * в NSDictionary *, вероятно, приведет к сбою при попытке доступа к любым строковым методам, которые не реализованы в словаре.Если вы хотите, чтобы эта строка регистрировалась, добавьте вызов в описание.

cell.textLabel.text = [[[vuwiManager linkedList]objectAtIndex:indexPath.row] description];
1 голос
/ 21 июля 2011

Вы пытаетесь присвоить объекту NSDictionary значение cell.textLabel.text, которому необходимо передать NSString.

Вы хотите:

NSString *s = [NSString stringWithFormat:@"%@",
                        [[vuwiManager linkedList]objectAtIndex:indexPath.row]];
cell.textLabel.text = s;

?

0 голосов
/ 21 июля 2011

Похоже, вы устанавливаете cell.textLabel.text в NSDictionary вместо NSString.Если connectedList является NSMutableArray NSDictionaries, то вам нужно добавить в objectForKey: @ "String key" для доступа к строке

cell.textLabel.text = [[[vuwiManager linkedList]objectAtIndex:indexPath.row] objectForKey:@"STRING_KEY_HERE"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...