gpt4 book ai didi

iPhone:NSComparisonResult 和 NSDiacriticInsensitiveSearch 问题斯堪的纳维亚字母表

转载 作者:行者123 更新时间:2023-12-03 19:22:02 25 4
gpt4 key购买 nike

我使用 NSComparisonResult 搜索数组,但是当我使用 NSDiacriticInsensitiveSearch 时,它无法立即找到 å æ ø 等斯堪的纳维亚字母,但它可以找到 á 等字母。当我在 options: 中删除 NSDiacriticInsensitiveSearch 时,我的搜索bar 可以立即找到 å æ ø,但忽略 à 等。

有什么解决办法吗?

8 月 15 日编辑:我相信在 if 逻辑中使用 NSScanner (尽管我没有这方面的经验)来检测搜索字符串中的 å æ ø,如果它们存在,则没有 nsdiactricinsensitivesearch。如果搜索字符串中没有 å æ ø,则将 nsdiactricinsensitivesearch 包含在 nscomparisonresult 中。我会尝试尽快实现这一点,并在是否有效时提供反馈。

<小时/>

我的代码:

NSComparisonResult result;
NSString *setext = searchText;
NSScanner *scanner = [NSScanner scannerWithString:setext];
NSString *a = @"å";
while ([scanner isAtEnd] == NO)
{
if ( [scanner scanString:a intoString:NULL])
{
[scanner scanUpToString:a intoString: NULL];
result = [mystr compare:searchText options:(NSCaseInsensitiveSearch)
range:NSMakeRange(0, [searchText length])];

}
else
{
result = [mystr compare:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)
range:NSMakeRange(0, [searchText length])];
}

}

但它比我对 JohnBrighton 解决方案的修改要慢一点:

        NSComparisonResult result;
NSString *string = searchText;
NSRange range = [string rangeOfString:@"æ"];
NSRange range2 = [string rangeOfString:@"ø"];
NSRange range3 = [string rangeOfString:@"å"];
if (range.location != NSNotFound || range2.location != NSNotFound || range3.location != NSNotFound )

//if ((range.location != NSNotFound) | (range2.location != NSNotFound ) | (range3.location != NSNotFound ) ) {


{
result = [mystr compare:searchText options:(NSCaseInsensitiveSearch)
range:NSMakeRange(0, [searchText length])];
}
else {
result = [mystr compare:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)
range:NSMakeRange(0, [searchText length])];
}
<小时/>

有谁知道 || 之间有什么区别吗?和 |在 if 逻辑中?

最佳答案

有谁知道 || 之间有什么区别吗?和 |在 if 逻辑中?

不能使用“|”在这种情况下,因为它是按位或运算符。 “||”是一个 bool 逻辑运算符,它不能与位一起用作按位或。

关于iPhone:NSComparisonResult 和 NSDiacriticInsensitiveSearch 问题斯堪的纳维亚字母表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7071694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com