मैंने अपनी परियोजना को एआरसी में बदल दिया है, और मुझे समझ में नहीं आता कि मुझे strong
या weak
आईबीओटलेट्स के लिए उपयोग करना है या नहीं। Xcode ऐसा करते हैं: अगर एक उदाहरण के लिए एक UILabel
बनाने इंटरफ़ेस बिल्डर में, और मैं अपने ViewController
के सहायक संपादक के साथ कनेक्ट, यह इस बनाने के लिए:आईबीओलेटलेट के लिए कमजोर या मजबूत और अन्य
@property (nonatomic, strong) UILabel *aLabel;
यह strong
का उपयोग करता है, बजाय मैं RayWenderlich वेबसाइट पर एक ट्यूटोरियल पढ़ें यह कहता है:
लेकिन इन दो विशेष गुणों के लिए मेरे पास अन्य योजनाएं हैं।
strong
के बजाय, हम उन्हेंweak
के रूप में घोषित करेंगे।
@property (nonatomic, weak) IBOutlet UITableView *tableView;
@property (nonatomic, weak) IBOutlet UISearchBar *searchBar;
Weak
सभी आउटलेट संपत्तियों के लिए रिश्ते की सिफारिश की है। ये दृश्य ऑब्जेक्ट्स पहले से ही व्यू कंट्रोलर के दृश्य पदानुक्रम का हिस्सा हैं और उन्हें कहीं और बनाए रखने की आवश्यकता नहीं है। आपके आउटलेटweak
घोषित करने का बड़ा लाभ यह है कि यह आपको viewDidUnload विधि लिखने का समय बचाता है।वर्तमान में हमारे
viewDidUnload
इस तरह दिखता है:
- (void)viewDidUnload
{
[super viewDidUnload];
self.tableView = nil;
self.searchBar = nil;
soundEffect = nil;
}
अब आप निम्नलिखित करने के लिए इसे आसान बनाने में कर सकते हैं:
- (void)viewDidUnload
{
[super viewDidUnload];
soundEffect = nil;
}
तो strong
के बजाय, weak
उपयोग करें, और videDidUnload
में सेट को शून्य पर हटाएं, इसके बजाय एक्सकोड का उपयोग करें ई strong
, और viewDidUnload
में self... = nil
का उपयोग करें।
मेरा प्रश्न है: मुझे strong
का उपयोग कब करना है, और जब weak
? मैं तैनाती लक्ष्य आईओएस 4 के लिए भी उपयोग करना चाहता हूं, तो मुझे unsafe_unretain
का उपयोग कब करना है? एआरसी के साथ strong
, weak
और unsafe_unretain
का उपयोग करते समय कोई भी मुझे एक छोटे से ट्यूटोरियल के साथ अच्छी तरह से समझाने में मदद कर सकता है?
के लिए धन्यवाद उत्तर – Piero
आप कहते हैं कि, अगर मैं मजबूत उपयोग करता हूं तो Iiboutlet के लिए मुझे viewdidunload में शून्य का उपयोग करना होगा, और कम स्मृति के लिए मेरे पास लीक नहीं है, इसके बजाय कमजोर के साथ मुझे videwdidunlaod में शून्य का उपयोग करने की आवश्यकता नहीं है, और कम स्मृति के लिए चेतावनी यह मजबूत समाधान या कमजोर बेहतर है? – Piero
यह वही है। 'कमजोर' का उपयोग करके आप हाथ से लिखित कोड (आपके मामले में दो पंक्तियां) पर समय बचा सकते हैं। लेकिन, एक्सकोड आपके लिए यह करता है। मेरी व्यक्तिगत राय मुझे 'मजबूत' का उपयोग करना पसंद है। –