Символы Юникода портятся при использовании в качестве ключа в NSMutableDictionary - PullRequest
0 голосов
/ 07 июня 2011

Когда я использую следующие ключи Ä, Å, Ö в NSMutableDictionary, они преобразуются в «\ U00c4», «\ U00c5» и «\ U00d6».Причинение моему программному обеспечению пропуска объектов, связанных с упомянутыми ключами, поскольку я использую исходную форму (Å, Ä и Ö) в коде.Язык - шведский, и я хочу, чтобы это работало для всех стран, поэтому преобразование не является желательным поведением.

Что я здесь не так делаю?

Как можно избежать, чтобы символыбыть преобразованным?

Код:

- (void)populateNavigationViewWithProjects:(id)projects
{
    [self.navigationViewItems removeAllObjects];
    BOOL keyExists = NO;
    NSString* firstLetterInProjectName = @"";
    for (id project in projects) {
        firstLetterInProjectName = [[[project valueForKey:@"name"] uppercaseString] substringToIndex:1];
        keyExists = [[self.navigationViewItems allKeys] containsObject:firstLetterInProjectName];
        if (keyExists) {
            [[self.navigationViewItems objectForKey:firstLetterInProjectName] addObject:project];
        }
        else {
            NSMutableArray* listOfProjects = [[NSMutableArray alloc] initWithObjects:project, nil];
            [self.navigationViewItems setValue:listOfProjects forKey:firstLetterInProjectName];
            [listOfProjects release];
        }
    }
    [self.tableView reloadData];
}

navigationViewItems доступен в:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    NSString* sectionTitle = [[[UILocalizedIndexedCollation currentCollation] sectionTitles] objectAtIndex:section];
    BOOL sectionContainsData = [[self.navigationViewItems allKeys] containsObject:sectionTitle];
    if (sectionContainsData) {
        return sectionTitle;
    }
    return @"";
}

Объекты, перечисленные в Å, Ä и Ö, не будут перечислены из-за этого.

1 Ответ

0 голосов
/ 07 июня 2011

вы можете вызвать -precomposedStringWithCanonicalMapping перед использованием строки.

NSString функция для работы с контентом Unicode.

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