में एक स्थैतिक चर प्रारंभ करना मैं छवियों के शब्दकोश को संग्रहीत करने के लिए एक स्थिर चर बनाने की कोशिश कर रहा था। दुर्भाग्य से, इसे शुरू करने के लिए सबसे अच्छा तरीका यह था कि वेरिएबल का उपयोग करने वाले प्रत्येक फ़ंक्शन में जांच करें। चूंकि मैं इस श्रेणी को एक श्रेणी के अंदर बना रहा हूं, इसलिए मैं इसे प्रारंभकर्ता के अंदर शुरू नहीं कर सकता। क्या NavarBarImages शुरू करने का एक साफ तरीका है?उद्देश्य-सी श्रेणी
static NSMutableDictionary *navigationBarImages = NULL;
@implementation UINavigationBar(CustomImage)
//Overrider to draw a custom image
- (void)drawRect:(CGRect)rect
{
if(navigationBarImages==NULL){
navigationBarImages=[[NSMutableDictionary alloc] init];
}
NSString *imageName=[navigationBarImages objectForKey:self];
if (imageName==nil) {
[email protected]"header_bg.png";
}
UIImage *image = [UIImage imageNamed: imageName];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
//Allow the setting of an image for the navigation bar
- (void)setImage:(UIImage*)image
{
if(navigationBarImages==NULL){
navigationBarImages=[[NSMutableDictionary alloc] init];
}
[navigationBarImages setObject:image forKey:self];
}
@end
मैं ओएलजे-सी ऑब्जेक्ट को न्यूल के साथ शुरू करने के लिए हतोत्साहित करता हूं, आपको इसे शून्य के साथ शुरू करना चाहिए! –
@ DanielSanchez, जबकि मैं सहमत होगा, हकीकत में, शून्य सिर्फ एक वस्तु के रूप में पूर्ण कलाकार है। –
@FireLizzard शून्य किसी ऑब्जेक्ट के पॉइंटर के लिए NULL के बराबर है। शून्य और न्यूल को अदला-बदली नहीं किया जाना चाहिए। नल की तुलना में नल अलग परिभाषित किया गया है। शून्य को (आईडी) 0 के रूप में परिभाषित किया गया है। नल नहीं है। –