Можете ли вы упростить этот код? - PullRequest
0 голосов
/ 24 мая 2011

Код ниже делает то, что мне нужно, но выглядит как крушение поезда и все еще добавляет кавычки вокруг вывода.Я предполагаю, что тот же самый результат мог бы быть в трех - пяти строках и без цитат.Нужно ли мне удалять скобки и пробелы каждый раз, когда я это делаю?Пожалуйста, предложите исправления?

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSUInteger row = [indexPath row];
    NSString *key = [terms objectAtIndex:row];
    NSArray *nameSection = [letters objectForKey:key];
    NSString *one = @"()";
    NSString *two = [NSString stringWithFormat:@"%@", nameSection];
    NSString *four = [two stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:one]];
    NSString *five = [four stringByTrimmingCharactersInSet: [NSCharacterSet newlineCharacterSet]];
    NSString * definition = [[NSString alloc] initWithFormat:@"%@", five];
    def.text = definition;
    [definition release];
}  

Ответы [ 3 ]

0 голосов
/ 24 мая 2011

Вот второй проход:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSUInteger row = [indexPath row];
    NSString *key = [terms objectAtIndex:row];
    NSArray *nameSection = [letters objectForKey:key];

    NSMutableCharacterSet charSet = [NSMutableCharacterSet characterSetWithCharactersInString:@"()"];
    [charSet formUnionWithCharacterSet:[NSCharacterSet newlineCharacterSet]];

    def.txt = [[NSString stringWithFormat:@"%@", nameSection] stringByTrimmingCharactersInSet:charSet];
}  
0 голосов
/ 24 мая 2011

Конечно, строки two и definition устарели, поскольку являются идентичными копиями nameSection и five.

0 голосов
/ 24 мая 2011

edit:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSString *key = [terms objectAtIndex:indexPath.row];
    NSString *nameSection = [NSString stringWithFormat:@"%@", [letters objectForKey:key]];
    NSString *trimmedString = [nameSection stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"()\"\n\r"]];

    def.text = trimmedString;
}

Вы можете добавить \" к one, чтобы цитаты исчезли.И строки definition можно пропустить, и вы можете просто сделать def.text = five; вместо.

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