2016-02-25 9 views
5

मैंने अपनी ऐप में कुछ टेक्स्टफ़िल्ल्ड कार्यक्षमताओं को कार्यान्वित किया है, इसलिए मैंने टेक्स्टफ़ील्ड प्रतिनिधि का उपयोग किया लेकिन यह कुछ त्रुटि दिखाता है जैसे "प्रकार स्ट्रिंग का कोई सदस्य लंबाई नहीं है" मैं नहीं करता हूं " टी को हल करने के बारे में नहीं पता कृपया इस मुद्दे को ठीक करने में मेरी मदद करें।स्विफ्ट: प्रकार 'स्ट्रिंग' के मूल्य में कोई सदस्य 'लंबाई' नहीं है

यहां मैं जो कोशिश कर रहा हूं उसका कोड दें।

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { 
    var oldLength: Int = textField.text!.characters.count 
    var replacementLength: Int = string.characters.count 
    var rangeLength: Int = range.length 
    var newLength: Int = oldLength - rangeLength + replacementLength 
    if textField.tag == 1 { 
     if string.length > 0 && !NSScanner.scannerWithString(string).scanInt(nil) { **------>//Error was showed in this line.** 
      return false 
     } 
     // This 'tabs' to next field when entering digits 
     if newLength == 5 { 
      if textField == txtOtp4 { 
       textField.resignFirstResponder() 
      } 
     } 
     else if oldLength > 0 && newLength == 0 { 

     } 

     return newLength <= 4 
    } 
    else { 
     if newLength == 11 { 
      if textField == txtPhoneNumber { 
       textField.resignFirstResponder() 
      } 
      return newLength <= 10 
     } 
    } 
    return true 
    // This allows numeric text only, but also backspace for deletes 
} 
+2

आप एक पंक्ति में 'string.length' का उपयोग क्यों कर रहे हैं लेकिन दूसरे में' string.characters.count' का उपयोग कर रहे हैं? – luk2302

उत्तर

13

बदलें द्वारा

if string.length > 0 

if string.characters.count > 0 
+0

आपके उत्तर @Tim Vermeulen के लिए धन्यवाद। –

+0

यह काम करता है लेकिन यह नए मुद्दों को दिखाता है। –

+0

त्रुटियां क्या हैं? –

8

आप स्विफ्ट 2.0 का उपयोग कर रहे हैं, तो आप

string.characters.count 

का उपयोग करना चाहिए स्ट्रिंग में वर्णों की संख्या प्राप्त करने के लिए ।

+0

धन्यवाद @Mohonish –

संबंधित मुद्दे