好的,我的情况是这样的。
首先,我正在通过通讯录获取联系人姓名,并显示姓名,该名称可能包含英语、非英语(中文、日语等)、符号等。我现在面临的问题是非英语字符不会按照组分组,例如假设'X'属于组'G',但它显示在下一组中。如下所示,这个汉字应该属于组'G'。
我看到了代码中的一个条件,即当它不在A-Z范围内时,它会将它们分组在“#”组中。该代码不是我编写的,我目前正在进行错误修复。那么这个索引完全是手动自定义的,所以...
有没有办法知道字符是符号还是非英语字符?或者有没有一种方法可以按组从通讯录中获取联系人?
下面的代码是检查字符应该分组的部分。
name = [name stringByTrimmingCharactersInSet:[NSCharacterSet punctuationCharacterSet]];
selectCharacter = [[name uppercaseString] characterAtIndex:0];
if( (selectCharacter > 'Z') || (selectCharacter < 'A')){
selectCharacter = '#';
}
if( currentCharacter != selectCharacter ){
// Store Old
if( currentCharacter > 0 ){
NSMutableArray * data = [allPeopleSectionIndex lastObject];
[data insertObject:[NSNumber numberWithInt:currentCount] atIndex:2];
}
// Setup for New
currentCharacter = selectCharacter;
currentCount = 1;
currentCharacterIndex ++;
// 0: char, 1: section start, 2: count
NSMutableArray * data = [[NSMutableArray alloc] initWithObjects:
[NSString stringWithFormat:@"%c", currentCharacter],
[NSNumber numberWithInt:i],
[NSNumber numberWithInt:0],
nil];
[allPeopleSectionIndex addObject:data];
[data release];
} else {
currentCount++;
}