2016-03-03 11 views
6

「値を変換できません'NSRange'(別名 '_NSRange')を予想される引数型 'Range'(別名 'Range')にタイプしますが、これを解決する方法はわかりません。'NSRange'(別名 '_NSRange')の値を期待される引数型 'Range <Index>'(別名「Range <String.CharacterView.Index>」)に変換できません

ここに私のコードを掲載します。

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) 
      } 

答えて

9

あなたはNSStringのにstrNumberを変換する必要があります:var strNumber: NSString = txtPhoneNumber.text!ここ

より:NSRange to Range<String.Index>

+0

上のクラスのメソッドを使用しますが、あなたの助けをありがとうございました、それは私のために便利です。.. 。@丁寧 –

1

substringWithRange方法はNSStringタイプ

var strNumber: String = txtPhoneNumber.text! 

ライン

上記の変更のために働きます
6

スウィフト4:その文字列に

まずtypecaste、この型変換文字列

let typeCasteToStringFirst = textField.text as NSString? 
let newString = typeCasteToStringFirst?.replacingCharacters(in: range, with: string) 
関連する問題