2014-09-27 26 views
19

मैं Swift में नया हूं और मैं एक साधारण कैलकुलेटर बना रहा हूं जहां मुझे दबाए गए बटन का पता लगाने की आवश्यकता नहीं है और मेरा कोड नीचे है।बटन से लेबल नाम कैसे प्राप्त करें?

@IBAction func ButtonTapped(TheButton : UIButton){ 

    println(TheButton.titleLabel.text) 
} 

लेकिन यह मेरे जैसे "UILabel? Does not have a member a named text"

त्रुटि दिखाता है और यह मुझे बताओ इस

println(TheButton.titleLabel?.text) 

यह प्रिंट करता Optional("1") की तरह कोड को संशोधित करने

तो किसी को भी (1 मेरी बटन नाम है) मेरी मदद कर सकता है कि यह मेरे लिए क्यों खुश है और मैं बिना वैकल्पिक के अपने बटन का नाम कैसे प्रिंट कर सकता हूं?

+1

समारोह के नाम और चर नाम एक साथ शुरू करना चाहिए

आप यह सुनिश्चित करें कि titleLabel नहीं के बराबर नहीं है कर रहे हैं: यहाँ स्विफ्ट 2.2 के लिए सही संस्करण है छोटा अक्षर। यह एक सम्मेलन है जो पठनीयता को बढ़ाता है। – Abizern

+0

धन्यवाद! यह मेरी मदद की थी। – Raja

उत्तर

32

आप यह सुनिश्चित करें कि titleLabel नहीं है nil हैं:

println(TheButton.titleLabel!.text) 
बाकी

if let text = TheButton.titleLabel?.text { 
    println(text) 
} 
13

अधिक बस, तुम बस कर सकता है: बटन का शीर्षक नहीं है

let titleValueString = TheButton.currentTitle! 

हैं शून्य, विस्मयादिबोधक बिंदु (!) अंततः ओप को खोल देगा tional (विस्मयादिबोधक बिंदु के बिना currentTitle) और आपके स्थिर में बटन के शीर्षक के लिए एक स्ट्रिंग मान होगा, titleValueString

2

शीर्ष उत्तर अब काम नहीं करता है।

print(TheButton.titleLabel!.text!) 

आप नहीं कर रहे हैं:

if let text = TheButton.titleLabel?.text { 
    print(text) 
} 
संबंधित मुद्दे