है यह स्वीकार्य/ऑब्जेक्टिव-सी में सुरक्षित/कोको init
विधि लपेटकर के रूप में निम्नानुसार हैं:का उपयोग करते हुए `स्वयं = [आत्म init]` रैप करने के लिए अन्य `init message`
-(id)init {
if ((self=[super init])) {
self.bar = [[Bar alloc] init];
}
return self;
}
-(id)initWithFoo:(Foo *)f {
if ((self=[self init])) {
self.foo = f;
}
return self;
}
नोट [self init]
में initWithFoo
।
शायद यह एक साधारण हां जवाब है ... स्पष्ट प्रतीत होता है, लेकिन मानक नहीं है?
यह स्वीकार्य है। मेरी एकमात्र टिप्पणी दूसरी विधि के बारे में है। यह इस तरह कुछ उपयोग करने के लिए बेहतर है: - (आईडी) initWithFoo: (Foo) newFoo {.... self.foo = newFoo ....} –
क्षमा करें, जल्दी से प्रश्न का वर्णन कर रहा था ... अर्थशास्त्र को सही करेगा – Ross
मैं कहूंगा कि यह असामान्य है: आपका 'initWithFoo:' प्रारंभकर्ता है जो सबसे अधिक करता है। लेकिन यह एक और प्रारंभकर्ता को कॉल करके _indirectly_ करता है, जो कुछ और करता है। सामान्य (और _good! _) अभ्यास _one_ नामित प्रारंभकर्ता है। सबसे विशिष्ट एक, एक अन्य सभी प्रारंभकर्ता डिफ़ॉल्ट तर्क के साथ कॉल करते हैं। और यह दो नंबर होगा, क्योंकि यह दो इवार्स शुरू करता है: 'foo' और' bar'। – danyowdee