2015-06-20 15 views
5

मैं स्विफ्ट खेल का मैदान कोशिश कर रहा था। जब मैंने नीचे दिए गए कोड की कोशिश की, तो यह काम नहीं किया और मुझे 'String' does not have a member named 'Characters' बताया। मैं the number of characters in cafe is 4 प्रिंट करने की उम्मीद करता हूं। क्या आप मुझे कोई सुझाव दे सकते हैं? धन्यवाद।स्ट्रिंग में कोई सदस्य नाम नहीं है?

var word = "cafe" 
print("the number of characters in \(word) is \(word.characters.count)") 

उत्तर

13

characters 'नई' स्विफ्ट 2 कि Xcode 7 बीटा के साथ आता है में String की संपत्ति है।

  • String अब SequenceType का पालन करती है, आपके पास:

    आप शायद स्विफ्ट 1.2 के साथ Xcode 6.3.2 का उपयोग कर रहे हैं, तो यह

    print("the number of characters in \(word) is \(count(word))") 
    

    दो बातें स्विफ्ट 2.0 यहाँ के साथ बदला है .characters स्पष्ट रूप से,

  • वैश्विक count() फ़ंक्शन को "प्रोटोकॉल एक्सटेंशन" विधिद्वारा प्रतिस्थापित किया गया है।
+0

यह works.Thanks । Stackoverflow अद्भुत है :-) – David

+0

उत्तर अच्छा है। मैं पूछ सकता हूं कि "नया" स्विफ्ट 2 में स्ट्रिंग की लंबाई प्राप्त करने के लिए सबसे अच्छा अभ्यास (या अन्य सामान्य प्रथाओं) क्या है। क्योंकि 'word.characters.count' जैसी अभिव्यक्ति थोड़ा जटिल लगती है। धन्यवाद। –

+0

@EricTsui: जहां तक ​​मुझे पता है, यह * है * आप लंबाई निर्धारित कैसे करते हैं। जैसा कि आप एक्सकोड 7 बीटा रिलीज नोट्स से देख सकते हैं, "यूटीएफ -16 व्यू" या "यूटीएफ -8 व्यू" से काफी सामान्य "यूनिकोड विस्तारित ग्रैफेम क्लस्टर व्यू" को अलग करने के लिए 'वर्ण' गुण पेश किया गया है। तो 'word.utf8.count' आपको यूटीएफ -8 स्ट्रिंग के रूप में लंबाई देगा। –

0

मुझे लगता है कि आप स्विफ्ट 2 आईबुक से ट्यूटोरियल पढ़ रहे हैं। यह नई सुविधा है। और यह केवल एक्सकोड 7 में काम करेगा।

0

गिनती पात्रों विधि का उपयोग करें:

println(the number of characters in \(word) is \(count(word))") 

स्विफ्ट 2 के साथ:

word.characters.count 
0

इसके अलावा, वास्तविक पात्रों पाने के लिए आप कॉल कर सकते हैं:

let characters = Array(string) 

आप बस तो कर सकते थे कॉल करें:

let length = characters.count 

हालांकि, अगर आप भी सिर्फ गिनती समारोह इस्तेमाल कर सकते हैं अगर आप स्विफ्ट 1.2 में वर्ण या कुछ भी पुनरावृति करने की जरूरत नहीं:

let length = count(string) 

स्विफ्ट 2 में:

let length = string.count() 
संबंधित मुद्दे