2015-05-13 37 views
0

這不是很重要,但如果我使用NSDataDetector,如here並將它用於網站鏈接,我可以顯示所有網站與.com,.us甚至.ca但不是.io 如果我使用http://website.io它正在工作,但如果文本是website.io它不起作用。NSDataDetector找不到.io網站

有人有一個解決方法,使其工作?

示例代碼在遊樂場工作,如果你需要:

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英語上,但在我的語言上,有一些「自滿」的域名爲.ad .am .cd .co .io .me .mu.nu .tv。 je .sr

我只是嘗試,只有。我的作品。這是「仍然」頂級域名的蘋果限制嗎?

回答

1

隨意向Apple提交錯誤。但是我認爲這是故意省略的,因爲「io」意思是我的意大利語,有些人在完成一個句子後沒有在點後面加一個空格。因此,如果.io被添加,你會發現「buon giorno.io non lo so」作爲鏈接(不是)。包括http://或其他標記如<>會強制檢測。

+0

我沒有這樣想,但是.je對於法國人來說是一樣的。所以你也許是對的,因爲它並不重要,我不會將它報告爲一個錯誤,我只是想知道我是否錯過了一些東西或者沒有很好地使用它。謝謝。 – Dam

1

一些頂級域名不被NSDataDetector檢測,未公開的原因(雖然DENIAU先生的猜測似乎也合情合理。)

常見的解決方法是使用twitter-text-objc,它可以檢測所有頂級域名。請致電[TwitterText URLsInText:]以獲取一組匹配的URL。您可以使用這些返回的range來創建鏈接等。

+0

我不想僅僅爲此使用一個庫,但看起來它會適合拉丁鏈接,但也適用於cyrilic,阿拉伯語和所有其他字母表。謝謝。 – Dam