2011-12-15 11 views
10

यहाँ कैसे मैं UIAlertView और प्रतिनिधि clickedButtonAtIndex दिखाने है -एआरसी और UIAlertView: गैर मान्यता प्राप्त चयनकर्ता उदाहरण के लिए भेजा

UIAlertView *alert = 
    [[UIAlertView alloc] initWithTitle: @"title" 
           message: @"message" 
           delegate: self 
        cancelButtonTitle: @"Cancel" 
        otherButtonTitles: @"Continue", nil]; 

    [alert show]; 


- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { 
    //something 
} 

कोड का यह टुकड़ा पूरी तरह से एआरसी के बिना काम करता है। लेकिन एआरसी के साथ इस त्रुटि फेंकता है - न आया हुआ अपवाद 'NSInvalidArgumentException', कारण की वजह से एप्लिकेशन समाप्त: -

क्यों प्रतिनिधि फेंक है पर कोई भी विचार '[__ NSCFType alertView: clickedButtonAtIndex:] गैर मान्यता प्राप्त चयनकर्ता उदाहरण 0x859d790 के लिए भेजा' यह गलती?

+1

प्रतिनिधि स्वयं को हटा दिया जा रहा है। आप उस वस्तु को कैसे बना रहे हैं और प्रबंधित कर रहे हैं? –

+1

@FirozeLafeer - ऑब्जेक्ट जो कोड के इस टुकड़े को बुला रहा था यानी स्वयं एआरसी द्वारा जारी किया गया था। मैंने इसे एक संपत्ति बना दिया और अब यह काम करता प्रतीत होता है। धन्यवाद :) – arank

उत्तर

13

आपके प्रतिनिधि को हटा दिया गया है। यह सुनिश्चित करने के लिए अपना कोड दोबारा जांचें कि ऑब्जेक्ट जो अलर्ट दिखा रहा है और खुद को प्रतिनिधि के रूप में सेट कर रहा है, किसी भी तरह से बनाए रखा जा रहा है (यानी: आपके ऐप में कुछ इसका मजबूत संदर्भ है)।

delegate: self cancelButtonTitle: @"No" otherButtonTitles: @"Yes",nil]; // don't forget the nil at the end here! (or it will crash first run)

दिलचस्प बात यह है कि यह केवल पहली बार जब आप अनुप्रयोग चलाने दुर्घटनाओं:

+0

यह वास्तव में मेरी समस्या थी, जो इस पोस्ट के बाद मुझे एहसास हुआ क्योंकि मैंने स्टोरीबोर्ड में एक बटन कॉपी किया था, जिसमें अभी भी एक विधि संलग्न है जो दृश्य नियंत्रक को हटा दिया गया था। इसलिए मेरी दूसरी विधि, जिसे ठीक से बुलाया जा रहा था और निष्पादित किया जा रहा था, buttonAtIndex के साथ कार्यों को पूरा नहीं कर सका। उम्मीद है कि यह किसी को मदद करता है, आपके समाधान के लिए धन्यवाद! –

+0

इसके अलावा, UIAlertView के लिए कोकोपोड खोजें और आपको कई ब्लॉकों-आधारित परिवर्धन मिलेगा जो UIAlertView का उपयोग करके सरल बनाएंगे और आपके दृश्य नियंत्रकों में UIAlertViewDelegate का उपयोग करने की आवश्यकता को खत्म कर देंगे। –

0

इसी प्रकार के भी अगर आप पिछले otherButtonTitles पैरामीटर के बाद अंत में शून्य भूल हो सकता है। उसके बाद, यह ठीक है।

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

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