NSDataDetector 找不到 .io 网站
NSDataDetector do not find .io website
它不是那么重要,但如果我像 here 一样使用 NSDataDetector 并将其用于网络链接,我可以显示所有带有 .com、.us 甚至 .ca 的网站,但不能用于 .io
如果我使用 http://website.io 它可以工作,但是如果文本是 website.io 它就不能工作。
有人有解决办法让它工作吗?
如果需要,可在 Playground 中运行示例代码:
var string = "website.io is not ok but website.com is ok"
var error: NSError?
let detector = NSDataDetector(types: NSTextCheckingType.Link.rawValue, error: &error)
detector?.enumerateMatchesInString(string, options: nil, range: NSMakeRange(0, (string as NSString).length)) { (result, flags, _) in
println(result)
println(flags)
}
输出为 website.com {25,11}
缺少 website.io {0, 10}
编辑:
它不是写在 wiki 英语上,而是写在我的语言上,有一些 "complacency" 域,如 .ad .am .cd .co .io .me .mu .nu .tv .je .sr
我试了一下,只有 .me 能用。这个 "still" 顶级域是 Apple 的限制吗?
随时向 Apple 提交错误。但是我认为它是有意省略的,因为 "io" 在意大利语中是 I 的意思,有些人在完成一个句子时没有在点后面加上 space 。因此,如果添加了 .io,您会将 "buon giorno.io non lo so" 检测为 link(不是)。包含 http:// 或 <> 等其他标记将强制检测。
某些 TLD 未被 NSDataDetector
检测到,原因不明(尽管 Deniau 先生的猜测似乎有道理。)
一个常见的解决方法是使用 twitter-text-objc,它将检测所有 TLD。调用 [TwitterText URLsInText:]
获取一组匹配的 URL。您可以使用这些返回的 range
创建链接等
它不是那么重要,但如果我像 here 一样使用 NSDataDetector 并将其用于网络链接,我可以显示所有带有 .com、.us 甚至 .ca 的网站,但不能用于 .io 如果我使用 http://website.io 它可以工作,但是如果文本是 website.io 它就不能工作。
有人有解决办法让它工作吗?
如果需要,可在 Playground 中运行示例代码:
var string = "website.io is not ok but website.com is ok"
var error: NSError?
let detector = NSDataDetector(types: NSTextCheckingType.Link.rawValue, error: &error)
detector?.enumerateMatchesInString(string, options: nil, range: NSMakeRange(0, (string as NSString).length)) { (result, flags, _) in
println(result)
println(flags)
}
输出为 website.com {25,11}
缺少 website.io {0, 10}
编辑:
它不是写在 wiki 英语上,而是写在我的语言上,有一些 "complacency" 域,如 .ad .am .cd .co .io .me .mu .nu .tv .je .sr
我试了一下,只有 .me 能用。这个 "still" 顶级域是 Apple 的限制吗?
随时向 Apple 提交错误。但是我认为它是有意省略的,因为 "io" 在意大利语中是 I 的意思,有些人在完成一个句子时没有在点后面加上 space 。因此,如果添加了 .io,您会将 "buon giorno.io non lo so" 检测为 link(不是)。包含 http:// 或 <> 等其他标记将强制检测。
某些 TLD 未被 NSDataDetector
检测到,原因不明(尽管 Deniau 先生的猜测似乎有道理。)
一个常见的解决方法是使用 twitter-text-objc,它将检测所有 TLD。调用 [TwitterText URLsInText:]
获取一组匹配的 URL。您可以使用这些返回的 range
创建链接等