कई कोको विधियां हैं जिन्हें किसी विधि के पैरामीटर के रूप में एनएसईआरआर ऑब्जेक्ट की आवश्यकता होती है, लेकिन वास्तव में त्रुटियों के मौजूद होने पर कॉलिंग विधि में त्रुटि ऑब्जेक्ट को वापस करने का माध्यम है। क्या यह लौटाई गई वस्तु बरकरार है? यही कारण है कि करता है वहाँ होने की जरूरत है बुला वस्तु कोड (विधि है जो करने के लिए त्रुटि दी है) में है, कुछ कोड की तरह:क्या मुझे एक लौटा हुआ एनएसईआरआर ऑब्जेक्ट जारी करने की आवश्यकता है?
NSError *error;
[apiCall .... error:&error];
if (error){
[*error release];
}
मैं इस कहीं भी नहीं देखा है, और यह करने की आवश्यकता है, तो जारी किया, क्या यह करने का तरीका है?
कारण मैं [* त्रुटि कोड] डालता हूं यह है कि आप एनएसईआरआरआर var को भी निर्दिष्ट कर सकते हैं: NSError ** त्रुटि; जो वस्तु के बिंदु पर एक बिंदु है। क्या यह मान्य है? – casademora
आप 'त्रुटि' के लिए एक प्रकार के रूप में 'NSError **' निर्दिष्ट करते हैं, जब यह "आउट पैरामीटर" या "आउटपुट पैरामीटर" होता है। उस स्थिति में आप अव्यवस्था करेंगे, लेकिन ध्यान दें कि '* त्रुटि' में 'NSError *' टाइप होगा। आप इस तथ्य को पाने के लिए पैरामीटर का उपयोग करते हैं कि कार्यों में केवल एक वापसी मूल्य होता है। Objc-C में आउट पैरामीटर 'टाइप **' का उपयोग करते हैं क्योंकि तर्क पास-दर-मान होते हैं। ध्यान दें कि अगर 'त्रुटि' में 'एनएसईआरआर ** ** टाइप किया गया था, तो आपको इसे' एनएसईआरआर * * (जो आप एपीआई कॉल में करते हैं) के लिए पॉइंटर के साथ शुरू करना होगा या एक पॉइंटर आवंटित करना होगा, जो होता है लेकिन थोड़ा अजीब है। – outis
@outis अगर यह स्वत: समाप्त हो गया है, तो कॉलर विधि में इसका उपयोग गलत नहीं है। क्योंकि जिस विधि ने वास्तव में एनएसईआरआरआर * बनाया है और इसे आउट पैरामीटर में असाइन किया गया है, एनएसईआरर ** विधि कॉल के साथ समाप्त हो गया है और हम उसके बाद कॉलर में इसका उपयोग करते हैं। – SayeedHussain