मेरी परियोजनाओं में मैं इंटरफ़ेस बिल्डर का उपयोग नहीं करता हूं और मैंने एक बात देखी है जो मुझे नहीं पता कि मुझे कैसे समझाया जाए। फिर भी। तो, बिंदु पर। जब हम आईबी का उपयोग कर रहे हैं और हमारे नियंत्रक में यूआईएलएबल या यूआईबटन जैसे यूजर इंटरफेस के तत्वों को परिभाषित करते हैं तो हम इस बदसूरत उपसर्ग आईबीओलेट और 'कमजोर' संशोधक का उपयोग करते हैं। यह संगीत की तरह काम करता है। लेकिन जब हम आईबी का उपयोग न करने और कोड से पूरे यूजर इंटरफेस को परिभाषित करने का फैसला करते हैं तो यह काम नहीं करता है।आईओएस इंटरफेस तत्वों के साथ मजबूत और कमजोर संशोधक
मान लें कि मैं UILabel को नियंत्रक (आईबी का उपयोग करके) जोड़ना चाहता हूं।
@property (nonatomic, weak) IBOutlet UILabel * label;
और मैं * .m फ़ाइल में कुछ और करने की जरूरत नहीं है: मैं मैं ज फ़ाइल * कुछ इस तरह होगा। लेकिन अगर मैं * .xib फ़ाइल को हटाने और स्थापना के लिए मेरी UILabel में,, init तरीकों में से एक है, इस तरह की कोशिश उदाहरण के लिए:
self.label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,100,20)];
self.label.text = @"some text";
[self.view addSubview:self.label];
यह जब तक मैं इस के लिए मेरे * ज फ़ाइल को बदलने से काम नहीं करता :
@property (nonatomic, strong) UILabel * label;
अब, मैं कमजोर और मजबूत के बीच का अंतर है, लेकिन मुझे पता नहीं क्यों हम UI तत्व के लिए कमजोर जब आईबी का उपयोग कर उपयोग कर सकते हैं? कुछ इन तत्वों के लिए एक मजबूत पॉइंटर्स रखना चाहिए, है ना? पर क्या?? दूसरे मामले में यह नियंत्रक है, लेकिन मुझे समझ में नहीं आता कि यह पहले मामले में कैसे व्यवहार करता है।
मैं या तो क्यों// यह कमजोर होना चाहिए सकता है पता नहीं है। यह निश्चित रूप से मजबूत होने की जरूरत है। –
जब आप आईबी का उपयोग नहीं करते हैं, तो यह आवश्यक है, यह मेरे सवाल का संकेत था "जब आप आईबी का उपयोग करते हैं तो मजबूत सूचक क्या रहता है?", क्योंकि यह नियंत्रक नहीं है, है ना? ;) –
@ H2CO3 मेरा उत्तर में डॉक्स से मेरी बोली देखते हैं, विशेष रूप से, "दुकानों आपके द्वारा बनाए गए इसलिए आम तौर पर कमजोर होना चाहिए" स्पष्टीकरण के लिए – WDUK