2015-05-21 24 views
1

我有一個帶有UITextView的iOS應用程序,可以自動檢測鏈接和電話號碼。我想要做的是攔截當鏈接使用此點:objective-c如何判斷一個NSURL是否被格式化爲一個電話號碼

-(BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange 

,然後我需要檢查URL是否是網頁鏈接或電話號碼。

有沒有人有任何想法如何做到這一點?我能想到的唯一方法是將其轉換爲字符串,並檢查它是否以@「tel」開頭,但必須有更好的方法。謝謝!

回答

6

還有更好的辦法。

一個NSURL對象有一個scheme的屬性,它將識別它是什麼類型的URL。

if ([URL.scheme isEqualToString:@"tel"]) { 
    // handle telephone case here 
} else { 
    // handle http or other case here 
} 

的文件說,這個制度可以被視爲該協議在大多數情況下:

注意

術語「協議」談論基於網絡的URL方案時,有時也被使用。但是,並非所有的URL方案都是網絡協議 - data:// URL,例如。

檢查有關如何裂開URL中使用您需要的部分更多信息NSURL文檔的這一部分: Accessing the Parts of the URL(截至15年5月21日有效鏈接)

+1

我增加了一些額外信息和鏈接到文件,以供參考。讓我知道你是否需要任何幫助,或者如果這個答案不是你正在尋找的。 – benhameen

+0

謝謝你,這正是我正在尋找的! – spacesloth

相關問題