UILocalizedIndexedCollation 区域设置不同于英语
Posted
技术标签:
【中文标题】UILocalizedIndexedCollation 区域设置不同于英语【英文标题】:UILocalizedIndexedCollation locale different than English 【发布时间】:2013-05-30 09:14:11 【问题描述】:我正在使用带有 UILocalizedIndexedCollation 的 Tableview 在右侧显示索引,但我手机上的语言是瑞典语 (svenska),因此我在 A-Z 之后看到了一些特定于瑞典语的特殊字符,例如 å ä ö 。在 A-Z 中,一些字符丢失了,例如 Q、X 等,我认为这些字符在瑞典语言环境中不存在。
当我点击说字符 "S" 时遇到问题,即使 "S" 中有条目,它也会显示部分 "R" 而不是 "S" 。同样对于最后一个字符“å”、“ä”,它会将我分别带到 X 和 Y,尽管 LocalizedIndexedCollation 中没有“X”。
我也跟着这个教程http://benedictcohen.co.uk/blog/archives/230,但它并没有解决我的问题。
在这方面的任何帮助都会很棒。
谢谢。
【问题讨论】:
【参考方案1】:在韩语中与 ios7 GM 相同。
我也检查了日语,但没有我们面临的问题。 日语和韩语的区别在于排序(link)
在韩语中,韩语出现在英语之前。 但是在日语中,当我测试时,英语出现在日语之前。
当我检查这个方法时,
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index
NSLog(@"%i", index);
NSLog(@"%i", [[UILocalizedIndexedCollation currentCollation] sectionForSectionIndexTitleAtIndex:index]);
我可以注意到 sectionForSectionIndexTitleAtIndex 异常地按照给定的索引增加。
sectionForSectionIndexTitleAtIndex 增加 4 ("A" + 1 - "F"),当 "ㄴ" -> "ㄷ" (索引只增加 1)。 sectionForSectionIndexTitleAtIndex 的增量正在重复。 1、4、1、4 ...我对这个问题的结论是 Unicode 中的 iOS7 错误与 ASCII 排序。 所以,我将临时修改 tableView:sectionForSectionIndexTitle:atIndex 方法按我的预期工作。
【讨论】:
如果我用这个改变 sectionIndecTitles 的顺序,(A、B、C、D、E、F、G、H、I、J、K、L、M、N、O、P, Q、R、S、T、U、V、W、X、Y、Z、ㄱ、ㄴ、ㄷ、ㄹ、ㅁ、ㅂ、ㅅ、ㅇ、ㅈ、ㅊ、ㅋ、ㅌ、ㅍ、ㅎ)、问题为我解决了。 如果您能在代码中分享您的答案,那将非常有帮助。苹果有没有报告这个问题?它似乎在 7.1 中也被破坏了。以上是关于UILocalizedIndexedCollation 区域设置不同于英语的主要内容,如果未能解决你的问题,请参考以下文章
UILocalizedIndexedCollation 和非英文索引
UILocalizedIndexedCollation 区域设置不同于英语
使用 UILocalizedIndexedCollation sectionForObject:collationStringSelector 的动态选择器
带有字符串数组的 UILocalizedIndexedCollation
如何在 UILocalizedIndexedCollation 中将汉字排序为#
带有索引 UITableViewController 和 UILocalizedIndexedCollation 的 NSFetchedResultsController