के लिए AppDelegate क्या है और मैं जब यह उपयोग करने के लिए कैसे पता?

वोट
123

मैं तो बस iPhone एप्लिकेशन पर काम करने की शुरुआत कर रहा हूँ। मुझे कैसे पता चलेगा जब मैं AppDelegate में सामान डाल दिया जाना चाहिए एक कस्टम वर्ग बनाम? वहाँ एक नियम या पैटर्न की तरह एक AppDelegate का उपयोग करता है अजगर या PHP की तरह एक और प्रोग्रामिंग भाषा के साथ सादृश्य किसी भी प्रकार का है?

17/03/2009 को 00:00
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


4 जवाब

वोट
220

मैं सामान्य रूप से डिजाइन दृष्टिकोण शब्द "आपके आवेदन के दिल" के एंड्रयू उपयोग से गर्भित से बचें। अच्छा प्रोग्राम डिजाइन सामान्य रूप से "चिंता का क्षेत्र" द्वारा कार्यक्षमता को अलग शामिल है - क्या मैं यह मतलब मुझे लगता है कि आप एक केंद्रीय स्थान में भी बहुत सी बातें लादू से बचना चाहिए है।

एक प्रतिनिधि वस्तु एक वस्तु अधिसूचित हो जाता है कि जब वस्तु जो करने के लिए यह जुड़ा हुआ है कुछ घटनाओं या राज्यों तक पहुँच जाता है। इस मामले में, आवेदन प्रतिनिधि एक वस्तु जब UIApplication वस्तु कुछ राज्यों तक पहुँच जाता है जो सूचनाएं प्राप्त करता है। कई मामलों में, यह एक विशेष एक-से-एक पर्यवेक्षक पैटर्न है।

इसका मतलब है कि AppDelegate के लिए "चिंता का क्षेत्र" विशेष UIApplication राज्यों से निपटने है। इनमें से सबसे महत्वपूर्ण हैं:

  • applicationDidFinishLaunching: - अच्छा ऑन-स्टार्टअप विन्यास और निर्माण से निपटने के लिए
  • applicationWillTerminate: - अंत में सफाई के लिए अच्छा

आप के बाद से वे वास्तव में वहां नहीं होने चाहिए AppDelegate में अन्य कार्यक्षमता डालने से बचना चाहिए। इस तरह के अन्य कार्यक्षमता में शामिल हैं:

  • दस्तावेज़ डेटा - आप एक दस्तावेज़ प्रबंधक सिंगलटन (एकाधिक दस्तावेज़ अनुप्रयोगों के लिए) या किसी दस्तावेज़ सिंगलटन (एकल दस्तावेज़ अनुप्रयोगों के लिए) होनी चाहिए
  • बटन / तालिका / दृश्य नियंत्रकों, दृश्य प्रतिनिधि तरीकों या अन्य दृश्य से निपटने (applicationDidFinishLaunching में :) उच्च स्तर का परिदृश्य के निर्माण के लिए छोड़कर - इस काम संबंधित दृश्य नियंत्रक वर्गों में होना चाहिए।

कई लोग अपने AppDelegate में इन बातों को गांठ क्योंकि वे आलसी हैं या वे AppDelegate पूरे कार्यक्रम को नियंत्रित करता है लगता है। के बाद से यह ऐप्लिकेशन में चिंता के क्षेत्रों muddies और पैमाने पर नहीं है आप अपने AppDelegate में केन्द्रित से बचना चाहिए।

17/03/2009 को 08:40
का स्रोत उपयोगकर्ता

वोट
22

आपका आवेदन प्रतिनिधि आपके आवेदन का दिल है। इसे प्रभावी ढंग से अपने "कार्यक्रम नियंत्रक" है।

आवेदन प्रतिनिधि वर्ग कि सबसे अधिक अन्य दृश्यों के निर्माण शुरू करने के लिए इस्तेमाल किया applicationDidFinishLaunching संदेश सहित अनुप्रयोग स्तर संदेशों, प्राप्त करता है।

जबकि वास्तव में समान नहीं आप "मुख्य ()" अपने कोको कार्यक्रम की दिनचर्या के रूप में यह के बारे में सोच सकता है।

17/03/2009 को 00:14
का स्रोत उपयोगकर्ता

वोट
1

उम्मीद है कि यह एक छोटे से अधिक मदद मिलेगी ...

कार्यक्रम एक मुख्य विधि से शुरू करता है - इस भाषा के लिए नए प्रोग्रामर्स हमेशा एक ही सवाल है? हाँ, आप इस मामले में सही कर रहे हैं; आईओएस क्षुधा भी एक मुख्य विधि से शुरू करते हैं।
आपका मुख्य वर्ग कॉल नीचे समारोह:

 UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 

UIApplicationMain कोको टच चलाने पाश और एप्लिकेशन बुनियादी सुविधाओं जो एक बनाता है की शुरूआत की UIApplicationवस्तु। हमारे आवेदन सामग्री तो उद्देश्य-सी एक प्रतिनिधि का उपयोग करता है इस संभाल करने की जरूरत है। यही कारण है कि हम इसे AppDelegate (के प्रतिनिधि के रूप में कार्य फोन है UIApplication)। हम चाहते हैं कि प्रतिनिधि के वैकल्पिक तरीकों के कुछ को लागू करने और तदनुसार व्यवहार करता है।

10/02/2016 को 10:44
का स्रोत उपयोगकर्ता

वोट
-1

@Shivam, धन्यवाद।

मैं क्या की समझ में से appDelegate, क्या एक के करीब है Applicationएंड्रॉयड में है। viewDidLoad, viewDidDisappearक्या Android के जीवनचक्र के बराबर है। हर आवेदन में आने वाले कॉल से रुकावट के लिए शुरू करने, दिखा सूचनाओं के लिए से, एक जीवन चक्र है। आप कुछ विशेष करने के लिए अपने कोड की जरूरत है जब इन systemघटनाओं तो तब हो आप कोड तरीकों लिखने के लिए की जरूरत है।

एंड्रॉयड उपयोग हम में onPause, onDestroy, onCreateथोड़े कॉलबैक तरीकों ऐसी प्रणाली के ईवेंट प्रबंधित करने।

27/01/2017 को 18:01
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more