Различные словари и таблицы - PullRequest
1 голос
/ 24 сентября 2010

У меня есть словарь, в котором хранится информация об адресе, иногда он может содержать «имя, адрес электронной почты, телефон», просто «имя, мобильный телефон»

name = "Someone";
email = "Someone@somewhere.com";
telephone = "01000 000000";

или

name = "Someone Else";
mobile = "07700 000000";

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

if(selectedData objectForKey=@"name" at indexPath.row){
        cell.textLabel.text = @"Name";
        cell.detailTextLabel.text = [selectedData objectForKey:@"name"];
    } else if(selectedData objectForKey=@"email" at indexPath.row){
        cell.textLabel.text = @"Email";
        cell.detailTextLabel.text = [selectedData objectForKey:@"email"];
    } else if(selectedData objectForKey=@"telephone" at indexPath.row){
        cell.textLabel.text = @"Telephone";
        cell.detailTextLabel.text = [selectedData objectForKey:@"telephone"];
    } else if(selectedData objectForKey=@"mobile" at indexPath.row){
        cell.textLabel.text = @"Mobile";
        cell.detailTextLabel.text = [selectedData objectForKey:@"mobile"];
    } 

Но я не могу понять, как это правильно закодировать, и, возможно, я даже лаю не на том дереве! Любая помощь или указатели на это приветствие.

1 Ответ

0 голосов
/ 27 сентября 2010

Мне удалось отсортировать это, сначала добавив массив всех ключей в viewdidload:

arrayOfKeys = [[NSMutableArray alloc]init];
    for (NSString *key in [selectedData allKeys]){
         NSLog(@"Key:%@", key);
        if(key != @"title" && key != @"name"){
            [arrayOfKeys addObject:key];
        }
    }

Тогда внутри cellForRowAtIndexPath я использовал:

NSString *currentKey = [arrayOfKeys objectAtIndex:indexPath.section]; 
    if(currentKey == @"email"){
        cell.textLabel.text = @"Email";
        cell.detailTextLabel.text = [selectedData objectForKey:@"email"];
    } else if(currentKey== @"telephone"){
        cell.textLabel.text = @"Telephone";
        cell.detailTextLabel.text = [selectedData objectForKey:@"telephone"];
    } else if(currentKey == @"mobile"){
        cell.textLabel.text = @"Mobile";
        cell.detailTextLabel.text = [selectedData objectForKey:@"mobile"];
    } else if(currentKey == @"company"){
        cell.textLabel.text = @"Company";
        cell.detailTextLabel.text = [selectedData objectForKey:@"company"];
    }

PS. не забудьте установить arrayOfKeys в вашем заголовочном файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...