gpt4 book ai didi

ios - rangeOfString 因 CLPlacemark 值而失败

转载 作者:行者123 更新时间:2023-11-29 03:06:26 25 4
gpt4 key购买 nike

我正在尝试检测地标值是否包含某些值。为此,我在 NSString 上使用了 rangeOfString 方法。但是,rangeOfString 可以像我期望的那样处理字符串,但不能像我期望的那样处理地标值。我不明白为什么会这样。

这是一个例子:

NSString *streetNumber = @"243-244";  //same value as the placemark.subThoroughfare
NSRange range1 = [streetNumber rangeOfString:@"-"]; //correctly identifies the range.location as 4
//placemark.subthoroughfare is 243-244
NSRange range2 = [placemark.subThoroughfare rangeOfString:@"-"]; //range.location = max int

如果您将模拟器位置设置为旧金山,则当前位置地标子街道包含“-”

有谁知道为什么会发生这种情况以及您将如何处理?

最佳答案

事实证明,安娜的建议是正确的。通过一些检查,我能够确定地标字符串不完全是 ascii。为了解决这个问题,我首先将字符串转换为 ascii:

NSData *asciiData = [placemark.subThoroughfare dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

NSString *streetNumber = [[NSString alloc] initWithData:asciiData encoding:NSASCIIStringEncoding];

新的 streetNumber 字符串现在可以像您预期的那样使用 rangeOfString 方法。

关于ios - rangeOfString 因 CLPlacemark 值而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22715646/

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