Swift 无法将类型“NSRange”(又名“NSRange”)的值转换为预期的参数类型“Range”(又名“Range”)

Swift 无法将类型“NSRange”(又名“NSRange”)的值转换为预期的参数类型“Range”(又名“Range”),swift,nsrange,Swift,Nsrange,我的代码中有一个错误,例如无法将“NSRange”aka“\u NSRange”类型的值转换为预期的参数类型“Range”aka“Range”,但我不知道如何解决此问题。请任何人帮助我 在这里我张贴我的代码 NSUserDefaults.standardUserDefaults().setObject("Hey I have started using this Chat App", forKey: "Status") var strNumber: String = tx

我的代码中有一个错误,例如无法将“NSRange”aka“\u NSRange”类型的值转换为预期的参数类型“Range”aka“Range”,但我不知道如何解决此问题。请任何人帮助我

在这里我张贴我的代码

NSUserDefaults.standardUserDefaults().setObject("Hey I have started using this Chat App", forKey: "Status")
            var strNumber: String = txtPhoneNumber.text!
            var myRange: NSRange = NSMakeRange(0, 2)
            var myRange1: NSRange = NSMakeRange(0, 1)
            var ran: String = strNumber.substringWithRange(myRange)  ------>  //This line error shows.
            var ran1: String = strNumber.substringWithRange(myRange1)
            if (ran == "00") || (ran == "60") || (ran == "62") || (ran == "65") || (ran == "91") || (ran == "44") {
                strNumber = strNumber.stringByReplacingOccurrencesOfString(ran, withString: "") as String
            }
            else if (ran1 == "0") {

                strNumber = strNumber.stringByReplacingOccurrencesOfString(ran1, withString: myRange1) as NSString
                //str_number = str_number.stringByReplacingOccurrencesOfString(ran1, withString: "", options: NSCaseInsensitiveSearch, range: myRange1)
            }
您应该将strNumber转换为NSString:var strNumber:NSString=txtPhoneNumber.text

更多信息:

substringWithRange方法适用于NSString类型

换线

var strNumber: NSString = txtPhoneNumber.text as! NSString
Swift 4:

首先将类型转换为字符串,然后在此类型转换的字符串上使用class方法

let typeCasteToStringFirst = textField.text as NSString?
let newString = typeCasteToStringFirst?.replacingCharacters(in: range, with: string)

非常感谢你的帮助,这对我很有用…@礼貌
let typeCasteToStringFirst = textField.text as NSString?
let newString = typeCasteToStringFirst?.replacingCharacters(in: range, with: string)