2012-10-24 7 views
6

के बीच अंतर क्या हैं didFinishLaunchingWithOption और viewDidLoad दोनों तरीकों के बीच क्या अंतर है?didinishLaunchingWithOption और viewDidLoad

पूर्व AppDlegate.m का एक तरीका है और बाद में ViewController.m का एक तरीका है, लेकिन दोनों यूआई को दृश्य पर लोड करने का एक ही मिशन करते हैं।

उत्तर

4

application:didFinishLaunchingWithOptions: एक UIApplicationDelegate प्रोटोकॉल विधि जब आईओएस आपके अनुप्रयोग को चलाने के लिए एक क्षेत्र को सेट करना समाप्त और आप के लिए सम्मिलन बिंदु, डेवलपर, एक दृश्य नियंत्रक लोड करने के लिए है कहा जाता हो जाता है कि, आदि

है दूसरी ओर viewDidLoad विधि UIViewController कक्षा का एक तरीका है जिसे UIViewController का एक उदाहरण स्मृति में लोड होने पर कॉल किया जाता है। ऐप्पल के दस्तावेज़ से:

नियंत्रक के दृश्य को स्मृति में लोड करने के बाद बुलाया गया।

चर्चा के बाद दृश्य नियंत्रक स्मृति में उसके दृश्य पदानुक्रम के लोड होते ही इस विधि कहा जाता है। यह विधि है, भले ही दृश्य पदानुक्रम को nib फ़ाइल से लोड किया गया हो या loadView विधि में प्रोग्रामेटिक रूप से बनाया गया हो। आप आमतौर पर विचारों को पर अतिरिक्त प्रारंभ करने के लिए ओवरराइड करते हैं जो कि nib फ़ाइलों से लोड किए गए थे।

+0

लेकिन यदि मैं दृश्य पर यूआईबटन लोड करना चाहता हूं, तो मैं कोड को दोनों दृश्यों और डिनफिनिश लांचिंगविथऑप्शन विधि में कोड डाल सकता हूं। क्या वह सही है? – JackieLam

+8

नहीं, didFinishLaunchingWithOptions एप्लिकेशन स्तर सेटअप के लिए है। यदि आपको किसी विशेष व्यू कंट्रोलर के लिए सबव्यूव को संशोधित करने की आवश्यकता है तो आपको इसे डीडलोड में देखने की ज़रूरत है। DidFinishLaunchingWithOptions विधि में कुल निष्पादन समय पर बीस (20) दूसरी सीमा होती है, 20 सेकंड के बाद आपके ऐप को आईओएस द्वारा मार दिया जाता है, इसलिए अगर यह कहीं और जा सकता है तो इस विधि में कोड डालने से बचने की आदत में होना अच्छा विचार है। –

+0

यह वास्तव में उपयोगी है और विशेष रूप से 20 सेकंड की चीजें हैं। Thx बहुत ज्यादा! – JackieLam