निम्नलिखित ObjC कोड उदाहरण पर विचार करें:क्या उद्देश्य-सी में विधि पैरामीटर को बनाए रखने/रिलीज़ करना एक अच्छा विचार है?
- (void)doStuffWithString:(NSString *)someParam {
// Do stuff with someParam
}
इस कोड को एक मल्टी-थ्रेडेड अनुप्रयोग में निष्पादित किया जा रहा थे, तो यह एक अच्छा विचार को बनाए रखने/रिलीज someParam
को हो सकता है? विशेष रूप से, मैं उन परिदृश्यों के बारे में सोच रहा हूं जिनमें पास-इन पैरामीटर कई थ्रेड द्वारा साझा किया गया सिंगलटन ऑब्जेक्ट है। क्या निम्नलिखित सुरक्षित है, उदाहरण के लिए?
- (void)doStuffWithString:(NSString *)someParam {
[stringParam retain];
// Do stuff with someParam
[stringParam release];
}