gpt4 book ai didi

ios - 使用 Objective-C 中的 DataDetector 将 NSTextCheckingResult addressComponents 字典转换为字符串

转载 作者:行者123 更新时间:2023-11-28 20:54:48 24 4
gpt4 key购买 nike

Apples NSDataDetector 可以作为 NSTextCheckingResults 检测各种内容,例如地址、日期和 url。对于地址,它在字典中捕获信息,其中包含许多代表地址元素的键,例如地址、城市、州和邮政编码。 Here are the various keys.

我的问题是我不擅长使用字典,无法找出将字典转换回常规字符串的语法。我需要一个字符串,以便我可以将其输入到 map 的自然语言查询中。

任何人都可以建议将字典转换为字符串的语法。

这是我用来检测字典的代码。

 NSDictionary* addrDict= nil;
NSString *addr = nil;
NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:(NSTextCheckingTypes)NSTextCheckingTypeAddress error:&error];

NSArray *matches = [detector matchesInString:string
options:0
range:NSMakeRange(0, [string length])];

NSLocale* currentLoc = [NSLocale currentLocale];

for (NSTextCheckingResult *match in matches) {
if ([match resultType] == NSTextCheckingTypeAddress) {

addrDict = [match addressComponents];
//How do I convert this dictionary back into a string that says something like
Starbucks 123 Main Street Mountain View CA 94103
}

}

最佳答案

NSTextCheckingResult 有一个属性 range 可以使用:

这应该可以解决问题:

NSRange addressMatchRange = [match range];
NSString *matchString = [string substringWithRange:addressMatchRange];

如果你想从字典中检索 if :addrDict[NSTextCheckingZIPKey] 会给你 94103addrDict[NSTextCheckingStateKey] 会给你 CA 等等,你必须重建它,但顺序由您决定。

关于ios - 使用 Objective-C 中的 DataDetector 将 NSTextCheckingResult addressComponents 字典转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53586101/

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