我想提出一個通訊錄應用,在那裏,我從通訊錄取名字,並將它們存儲在覈心數據,並利用NSFetchedResultsController.However
,來了就是#後面的字母第一指標和部分表中顯示的名稱。但我想要這樣做,就像在本地聯繫人應用程序中那樣,即#索引應該最後到來。
我用下面NSortDescriptor
:NSSortDescriptor問題
sortDescriptor = [[NSSortDescriptor的alloc] initWithKey:@ 「全名」 升序:YES];
這裏「fullName」是核心數據中的key
,它是通過連接名字和姓氏。 而區間確定爲「全名」如果fullName
不以字母開頭,其區間確定爲#的第一個字母。
我搜索了一下,並在NSortDescriptor
比較使用NSDiacriticInsensitiveSearch
但它並沒有奏效。如果任何人有任何想法,然後讓我知道。
這裏去我的代碼:
NSString *special = @"\uE000";
if ([[self sectionName:contactName] isEqualToString:@"#"]) {
sortName = [special stringByAppendingString:contactName];
}
else{
sortName = contactName;
}
[newContact setValue:[self sectionIdentifier:sortName] forKey:@"sectionIdentifier"];
[newContact setValue:sortName forKey:@"sortName"];
這裏是那種描述:
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"sortName" ascending:YES];
[self sectionIdentifier:sortName]
此方法將返回#如果sortName使用非字母開始,否則返回字母表由開始。
newContact是實體的對象。
我試過你的方法,但它不返回正確的部分名稱和索引 – user1632153
@ user1632153:你可以把你的代碼(或減少示例項目)在哪裏我可以下載它?我會試圖找出解決辦法。 –
我已添加我的代碼 – user1632153