Xcode

2010-06-21 21 views
5

में विधि कॉलिंग जब एक विधि बुला, मैंXcode

[self methodname]; 
समस्या है, xCode में मैं चेतावनी का भार मिल रहा हो रही है

का उपयोग करें! यह कह रहा है "*xxxappdelegate.app may not respond to methodname*"

क्या कॉल करने के तरीकों को कॉल करने का एक बेहतर तरीका है?

+0

मैं हमेशा * स्वयं * का उपयोग नहीं करता। –

उत्तर

5

आपको लगता है कि चेतावनी मिलती है, इसका मतलब है कि या तो:

  • विधि अपने वर्ग में मौजूद है कि नहीं करता है
  • आप एक अलग वर्ग पर कि विधि कॉल कर रहे हैं (नहीं आत्म) तो आप उस वर्ग के लिए हेडर आयात नहीं किया है
+0

धन्यवाद, बीमार मेरी .h फ़ाइल फिर से देखें :) – user370507

4

इन चेतावनियों सिर्फ मतलब है कि संकलक अगर सवाल में वर्ग विधि आप सीए हैं पता नहीं है lling। सुनिश्चित करें कि जिस विधि को आप कॉल कर रहे हैं उसे उस एमएम फ़ाइल में उस स्थान के ऊपर परिभाषित किया गया है जिसमें आप इसका उपयोग कर रहे हैं, या फ़ाइल के शीर्ष पर विधि घोषित करें।

@implemention A 

-(void)blah 
{ 
    [self foo]; // warning! 
} 

-(void)foo 
{ 
    [self blah]; // no warning 
} 

@end 
+0

इसके लिए धन्यवाद, :) – user370507

+1

इससे बचने के लिए, .h फ़ाइल में विधि घोषित करें। – Nishant

0

वर्ग, अपने उदाहरण में xxxappdelegate के लिए @interface को methodname जोड़ें। या बस सुनिश्चित करें कि methodname कार्यान्वयन उस स्थान से पहले है जिसे आप फ़ाइल में कॉल करते हैं।

+0

आपकी मदद के लिए धन्यवाद :) – user370507

1

कुछ संकलन आदेश कहा जाता है। जब आप विधि foo पर कॉल करते हैं तो इसे अभी तक परिभाषित नहीं किया गया है, हालांकि जब आप विधि blah पर कॉल करते हैं तो इसे केवल ऊपरी रेखा में परिभाषित किया जाता है।

बहुत अधिक विशिष्ट:

cout << a; 
string a = "hello"; 

जब आप यह है कि आप एक त्रुटि अपरिभाषित चर मिल जाएगा "एक" है। क्या करना चाहिए है:

string a = "hello"; 
cout << a; 
0

ज फ़ाइल विधि घोषित कुछ इस वरीयताओं के पास जाकर संग्रह और अन्य संग्रहीत डेटा हटा हल करने के लिए सूचकांक करने में असमर्थता xcodes से संबंधित समस्या हो सकती है है।