2014-08-29 9 views
5

बनाने में त्रुटि मुझे समझ में नहीं आ रहा है कि संकलक इस सिस्टम-शैली UIBarButtonItem प्रारंभकर्ता में शैली पैरामीटर के लिए तर्क क्यों मांग रहा है - इसमें यह नहीं है पहली जगह पैरामीटर। मदद? क्या यह स्विफ्ट के साथ एक बग है?"कॉलम में स्टाइल 'शैली के लिए गुम तर्क" सिस्टम UIBarButtonItem

class ExpensesViewController: UIViewController { 

    lazy var newExpenseBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: Selector("newExpenseBarButtonItemTapped:")) 

    func newExpenseBarButtonItemTapped() { 

    } 

} 
+0

क्या आपको कभी इसके लिए वैध उत्तर मिला? –

+0

@AaronBratcher हां, नीचे देखें। –

उत्तर

3

इस संकलक त्रुटि संदेश निकाल देंगे:

class ExpensesViewController: UIViewController { 

    lazy var newExpenseBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.UIBarButtonSystemItemAdd.value, 
       target:self, action:Selector("newExpenseBarButtonItemTapped:")) 

    func newExpenseBarButtonItemTapped() { 

    } 

} 

.Add कोई मान्य मान

+0

'UIBarButtonSystemItem.UIBarButtonSystemItemAdd' के बाद आप जो'value' जोड़ रहे हैं' क्या है? मेरे लिए जाने के लिए त्रुटि प्राप्त नहीं हो रही है :( –

+2

उपर्युक्त उत्तर पूरी तरह से एक्सकोड 6.1b2 –

+0

के साथ विफल रहता है, और जब मैं शीर्षक स्थापित करने के आधार पर प्रारंभकर्ता को आज़माता हूं, तो यह मुझे एक त्रुटि देता है मुझे लैंडस्केप छवि पैरामीटर याद आ रहा है। पूरी तरह से मिश्रित होने लगता है। –

3

कार्रवाई के लिए चयनकर्ता क्रिया को जोड़ने के लिए कोई ज़रूरत नहीं है।

class ExpensesViewController: UIViewController { 

lazy var newExpenseBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Add, 
                 target:self, 
                 action:"newExpenseBarButtonItemTapped") 


func newExpenseBarButtonItemTapped() 
{ 

} 

} 
-1

मैं बटन को एक निश्चित रूप से अनचाहे वैकल्पिक बनाकर इसे बाद में शुरू करने के बाद इसे ठीक करने में सक्षम था।

+0

कृपया कुछ कोड दिखाएं। – Makyen

2

यदि आप कक्षा के दायरे में self का उपयोग करते हैं, तो आपको बहुत सारे अजीब कंपाइलर संदेश मिलेंगे। ऐसा लगता है कि स्विफ्ट कंपाइलर अभी तक परिपक्व नहीं है। निम्नलिखित कोड Xcode संस्करण 6.1.1 (6A2008a) पर मेरे साथ ठीक काम करता है।

class Foo { 
    var playButton:UIBarButtonItem? = nil 

    func initButtons(){ 
     self.playButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Play, target: self, action: Selector("doPlay:")) 
    } 
} 
संबंधित मुद्दे