जब कोई उद्देश्य-सी अनुप्रयोग शुरू होता है, तो यह मुख्य() नामक फ़ंक्शन चलाकर शुरू होता है। यह फ़ाइल "main.m" में नहीं होना चाहिए, लेकिन इस तरह एक्सकोड विज़ार्ड चीजों को सेट करता है।
अंदर जादूगर का उत्पादन मुख्य() फ़ंक्शन, वहाँ इस लाइन है:
int retVal = UIApplicationMain(argc, argv, nil, nil);
यही कारण है कि "UIKit" रूपरेखा है कि पूरे आवेदन का निर्माण करता है शुरू होता है। UIAplplicationMain के अंदर, प्रकार UIAplplication का एक ऑब्जेक्ट बनाया गया है। और यूआईपीप्लिकेशंस क्लास के प्रतिनिधि सदस्य पर एप्लिकेशनडिडफिनिश लॉन्चिंग विथऑप्शन विधि को कॉल करने पर यूआईप्लिकेशंस का क्या हिस्सा होता है। यह प्रतिनिधि MainWindow.xib फ़ाइल में आपके ProjectAppDelegate क्लास का उदाहरण है, जो NSObject का उप-वर्ग है जो UIAplplicationDelegate प्रोटोकॉल के अनुरूप है।
क्या AppDelegate संकेत देता है शुरू में रन यह है ...
क्योंकि आपके MainWindow.xib फ़ाइल में कनेक्ट होने के लिए (अच्छी तरह से परियोजना जादूगर वास्तव में कनेक्शन किया) फ़ाइल का स्वामी (जो है UIAplplication ऑब्जेक्ट) UXplplicationDelegate ऑब्जेक्ट को .xib फ़ाइल में "प्रतिनिधि" आउटलेट, और UIAplplicationDelegate की श्रेणी आपके ऐप के UIAplplicationDelegate सबक्लास पर सेट है।
और "मेनविंडो.एक्सिब" के बारे में कुछ भी जादू नहीं है, इसे "Foo.xib" कहा जा सकता है, यह महत्वपूर्ण है कि आपकी Info.plist फ़ाइल में "मुख्य निब फ़ाइल बेस नाम" नामक संपत्ति "मेनविंडो" है। Foo.xib पर MainWindow.xib का नाम बदलने और "Info nib फ़ाइल बेस नाम" को अपनी Info.plist में "Foo" में बदलने का प्रयास करें और आप देखेंगे कि यह अभी भी काम करता है।
संपादित करें: RootController
के बारे में अधिक फिर, तथाकथित "RootController" के बारे में जादू कुछ भी नहीं है। यह Xcode नए प्रोजेक्ट विज़ार्ड द्वारा आपके लिए बनाए गए UIViewController उपclass का नाम है।
विज़ार्ड दो वर्गों के लिए प्रोजेक्ट में कोड रखता है: ProjectAppDelegate और ProjectViewController।
IBOutlet UIWindow *window;
IBOutlet ProjectViewController *viewController;
MainWindow.xib फ़ाइल में
, दोनों UIWindow और ProjectViewController के उदाहरण रखा जाता है, और ProjectAppDelegate में ऊपर दुकानों को झुका: ProjectAppDelegate वर्ग दो आउटलेट सदस्यों में शामिल है।
क्या स्क्रीन पर अपना सामान ऊपर हो जाता है अपने ProjectAppDelegate कक्षा में इस कोड है:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// Add the view controller's view to the window and display.
[self.window addSubview:viewController.view];
[self.window makeKeyAndVisible];
return YES;
}
फिर, कुछ भी नहीं है इस बारे में वास्तव में जादू: परियोजना विज़ार्ड कोड करने के लिए अपने "रूट" ViewController का दृष्टिकोण कहते हैं कि बनाया खिड़की का दृश्य, और खिड़की दिखाई देता है। आपका "रूट" व्यू कंट्रोलर .xib फ़ाइल में बनाया गया था, और ProjectAppDelegate आउटलेट पर लगाया गया था।
विज़ार्ड से किसी भी फाइल का उपयोग किये बिना पूरी तरह से एप्लिकेशन बनाने का प्रयास करना बहुत ही निर्देशक है। आप इस बारे में बहुत कुछ सीखेंगे कि .xib फाइलें कैसे काम करती हैं और वे कोड ऑब्जेक्ट्स से कैसे संबंधित हैं।
यह सही है !, "didFinishLaunchingWithOptions" निष्पादित करने वाली पहली विधि है! –