无法将类型 'NSRange'(又名“_NSRange”)的值转换为预期的参数类型 'Range<Index>'(又名 'Range<String.CharacterView.Index>')
Cannot convert value of type 'NSRange' (aka '_NSRange') to expected argument type 'Range<Index>' (aka 'Range<String.CharacterView.Index>')
我的代码中有一个错误,例如 "Cannot convert value of type 'NSRange' (aka '_NSRange') to expected argument type 'Range' (aka 'Range')",但我不知道如何解决这个问题,有人能帮帮我吗?
这是我的 post 我的代码。
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!
更多信息:NSRange to Range<String.Index>
substringWithRange
方法适用于 NSString
类型
var strNumber: String = txtPhoneNumber.text!
更改以上行
var strNumber: NSString = txtPhoneNumber.text as! NSString
Swift 4:
首先对字符串进行类型转换,然后对该类型转换字符串使用 class 方法
let typeCasteToStringFirst = textField.text as NSString?
let newString = typeCasteToStringFirst?.replacingCharacters(in: range, with: string)
我的代码中有一个错误,例如 "Cannot convert value of type 'NSRange' (aka '_NSRange') to expected argument type 'Range' (aka 'Range')",但我不知道如何解决这个问题,有人能帮帮我吗?
这是我的 post 我的代码。
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!
更多信息:NSRange to Range<String.Index>
substringWithRange
方法适用于 NSString
类型
var strNumber: String = txtPhoneNumber.text!
更改以上行
var strNumber: NSString = txtPhoneNumber.text as! NSString
Swift 4:
首先对字符串进行类型转换,然后对该类型转换字符串使用 class 方法
let typeCasteToStringFirst = textField.text as NSString?
let newString = typeCasteToStringFirst?.replacingCharacters(in: range, with: string)