2011-11-29 23 views
5

यह है त्रुटि मैं:पैरामीटर को प्रारंभ नहीं किया जा सकता और मुझे समझ नहीं आता क्यों

Cannot initialize a parameter of type 'id<ZXingDelegate>' 
with an lvalue of type 'FirstViewController *const __strong' 

कोड की इस पंक्ति से:

ZXingWidgetController *widController = 
    [[ZXingWidgetController alloc] initWithDelegate:self showCancel:YES 
                  OneDMode:NO]; 

मैं यह कैसे हल कर सकते हैं?

+0

एआरसी मुझे लगता है? फिर आपको एक ब्रिज कास्ट की आवश्यकता होगी। – Macmade

+0

क्या आप थोड़ा सा समझा सकते हैं कि मैं यह कैसे कर सकता हूं? और हाँ, एआरसी – Pillblast

+0

कभी नहीं, मैंने इसे गुमराह किया और पता चला कि एक ब्रिजेट कास्ट क्या है। उत्तर के लिए बहुत बहुत धन्यवाद, मेरी इच्छा है कि मैं एक टिप्पणी के रूप में एक टिप्पणी चुन सकता हूं – Pillblast

उत्तर

5

मैकमेड की टिप्पणी के लिए धन्यवाद मैंने समस्या को हल करने में कामयाब रहे। मुझे इसे इस तरह लिखा जाना चाहिए था:

ZXingWidgetController *widController = 
    [[ZXingWidgetController alloc] initWithDelegate:***(id)** self showCancel:YES 
                    OneDMode:NO]; 

जहां (आईडी) वह ब्रिज कास्ट है जिसके बारे में वह बात कर रहा था।

1

उपयोग इस मुद्दे

ZXingWidgetController *widController = [[ZXingWidgetController alloc] initWithDelegate:(id<ZXingDelegate>)self showCancel:YES OneDMode:NO]; 
0

के लिए कोड बंद इस लाइन यदि मैं यह सही ढंग से समझ, समस्या यह है कि आप पाटने कलाकारों की जरूरत है, न कि आपके FirstViewController वर्ग को परिभाषित नहीं किया गया है ZXingDelegate इंटरफ़ेस वर्ग है, इस प्रकार मुद्दा नहीं है।

ZXingDelegate (मुझे लगता है कि नाम पर आधारित) इंटरफ़ेस क्लास (प्रोटोकॉल, या प्रतिनिधि) जो फ़ंक्शन (इंटरफ़ेस) घोषित करता है जिसे इसे प्राप्त करने वाले वर्ग द्वारा परिभाषित किया जाना चाहिए (जब तक कि वे @ विकल्प नहीं हैं)। सी ++ में शुद्ध वर्चुअल (सार) कक्षाओं की तरह कुछ। इस तरह

@interface FirstViewController : UIViewController <ZXingDelegate> 

और अपने .m फ़ाइल में, कुछ:

तो तुम इस तरह अपने हेडर फाइल कुछ में आवश्यकता होगी

@implementation FirstViewController 

//...... 
-(void) SomeFunctionThat_ZXingDelegate_declares 
{ 
    // .... do something here.... 
} 
//...... 


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