iphone, как получить первую букву фамилии для таблицы раздела группы с помощью sqlite? - PullRequest
2 голосов
/ 04 декабря 2011

Я хотел бы знать, как создать разделы группы алфавита для имен, извлеченных из базы данных sqlite в iphone (xcode 4.2).Я был в состоянии сделать групповой раздел для имени, но не смог сделать часть фамилии.У некоторых имен строчные буквы. Я хочу, чтобы буква заголовков имела заглавные буквы, включая строчные и прописные буквы этих имен.У некоторых имен есть 3 имени, и я хотел убедиться, что я получил фамилию.Мой код ниже, и он, кажется, смешивает алфавит (от A до L, от C до D), а также e и E (нижний и верхний, который я не хочу отображать)

// -- создать индекс ---

nameIndex = [[NSMutableArray alloc] init];

for (int i=0; i<[_authorsInfo count]-1; i++){
    //---get the first char of each state---
    authors *tempAuthor = [_authorsInfo objectAtIndex:i];
    char alphabet = [tempAuthor.name characterAtIndex:0];
    NSString *uniChar = [NSString stringWithFormat:@"%C", alphabet];

    //---add each letter to the index array---
    if (![nameIndex containsObject:uniChar])
    {            
        [nameIndex addObject:uniChar];
    }

ОБНОВЛЕНИЕ *

self.authorsInfo= [база данных poemDatabase] .authorsInfo;

//---create the index---
nameIndex = [[NSMutableArray alloc] init];

for (int i=0; i<[_authorsInfo count]-1; i++){
    //---get the first char of each state---
    authors *tempAuthor = [_authorsInfo objectAtIndex:i];
    NSArray *nameComponents = [tempAuthor.name componentsSeparatedByString:@" "];
    NSString *lastName = [ nameComponents objectAtIndex: nameComponents.count-1 ];
    char alphabet = [lastName characterAtIndex:0];


    //char alphabet = [tempAuthor.name characterAtIndex:0];
    NSString *uniChar = [NSString stringWithFormat:@"%C", alphabet];

    //---add each letter to the index array---
    if (![nameIndex containsObject:uniChar])
    {            
        [nameIndex addObject:uniChar];
    }        
}

1 Ответ

2 голосов
/ 04 декабря 2011

Если tempAuthor.name содержит целое имя с пробелами, попробуйте это:

NSArray *nameComponents = [tempAuthor.name componentsSeparatedByString:@" "];
NSString *lastName = [ nameComponents objectAtIndex: nameComponents.count-1 ]
char alphabet = [lastName characterAtIndex:0];
...