2011-02-03 7 views
5

जैसा कि मैंने ObjC के लिए बहुत नया हूँ मैं निम्न समस्या को अटक कर रहा हूँ:ऑब्जेक्टिव-सी धागा का उपयोग कर का कारण बनता है: लक्ष्य चयनकर्ता को लागू नहीं करता है

मैं एक समारोह है DownloadFile

-(void) downloadFile:(NSMutableArray*)paramArray withDict:(NSMutableDictionary*)options  
{ 
    //do stuff 
} 

मैं करना चाहते हैं एक सूत्र के रूप में इस शुरू करते हैं, और इसलिए मैं कोड की इस पंक्ति का उपयोग करें:

NSThread* dLoad = [[NSThread alloc] initWithTarget:self selector:@selector(downloadFile:) object:nil]; 
[dLoad start]; 

यह मुझे निम्न त्रुटि फेंकता है:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSThread initWithTarget:selector:object:]: target does not implement selector (*** -[LaunchDownload downloadFile:])' 

मुझे यहां क्या याद आ रही है?

उत्तर

9

मेरा मानना ​​है कि आप अपने धागे के लिए पर्याप्त तर्क नहीं दे रहे हैं। आपके द्वारा लागू विधि में हस्ताक्षर downloadFile:withDict: है, लेकिन आप केवल downloadFile: प्रदान कर रहे हैं। आपको इसे सही चयनकर्ता नाम देना चाहिए।

ध्यान रखें कि आप शायद किसी भी तरह से परेशानी में भाग लेंगे - NSThread class reference निर्दिष्ट करता है कि आप जिस तरीके से कॉल करते हैं, केवल एक ही तर्क लेना चाहिए। मैं या तो अपने दो तर्कों को एक एकल एनएस डिक्शनरी में परिवर्तित करने की अनुशंसा करता हूं कि आपकी विधि इस धागे को प्रेषित करने के तरीके से बाहर निकलती है या पुनर्विचार कर रही है।

3

विधि का नाम downloadFile:withDict: है और डाउनलोड नहीं है फ़ाइल:।

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