2016-03-03 48 views
1

位置我有電話號碼的形式:撥打電話依賴於斯威夫特

(+39)0765 87 ...

+41(0)33 - 675 ...

其含義是當然的執行本地呼叫時,在後者的執行國際呼叫時在括號排出部分在第一種情況。 如果我通過要麼NSURL(字符串:)我得到零。怎樣才能獲得正確的行爲?

回答

0

我的猜測是首先刪除所有出現的(0),然後刪除所有括號和尾隨零到)。即使您撥打本地號碼,您也可以使用國家/地區前綴。

這樣的事情,但你可以把它用正則表達式可能會寫。

var number = "(+39) 0765 87" 

number = number.stringByReplacingOccurrencesOfString(" ", withString: "") 
number = number.stringByReplacingOccurrencesOfString("(0)", withString: "") 
number = number.stringByReplacingOccurrencesOfString("(", withString: "") 
number = number.stringByReplacingOccurrencesOfString(")0", withString: "") 
number = number.stringByReplacingOccurrencesOfString(")", withString: "") 
+0

其實我暫時沒有: –

+0

那我這樣做,其實。然而,它不適用於打電話,特別是對於英格蘭來說,甚至不適用於本地電話。 –

0

其實我暫時沒有:

let myStringArr = phoneValueLabel.text!.componentsSeparatedByString(")") 
var strippedStr:String! 
if myStringArr.count==2{ 
    strippedStr = myStringArr[1] 
} else { 
    strippedStr = phoneValueLabel.text! 
} 
let trimmedString = strippedStr.stringByReplacingOccurrencesOfString(" ", withString: "") 
let phoneLink="tel://\(trimmedString)" 
let url=NSURL(string:phoneLink) 
print("phoneLink=\(phoneLink) url=\(url)") 
if (url != nil){ 
    phoneValueLabel.addLink(url: url!, atRange:range) 
} 

,以去除所有字符牛肉右括號。不過,這當然適用於本地電話。我在尋找的是一個解決方案,根據來電是本地還是國際來插入正確的代碼。有例如:

033 675 ... 如果電話是從英國和,例如: 0041 33 675,如果呼叫來自意大利。

對於這個問題我的解決方案不會爲英格蘭修剪右括號之前的所有字符工作也修剪必要0