Resolve how XCode constructs iOS applications

Source: Internet
Author: User

AnalysisXCode ConstructionHow to startIOS ApplicationThe preface is the content to be introduced in this article. Let's just look at the content. Any automatic code generation tool is an enemy of beginners! This is the first time I learned the code generated by Microsoft Visual Studio's Wizzard.

Now it's really funny to think about it. Someone who knows nothing about Event loop, MVC pattern, and basically knows nothing about the basic tool library of Windows programs can see the one generated by Wizzard, code over-encapsulated by MFC is a pure waste of time. After many years, I realized that automated tools and templates are actually used to improve the efficiency of skilled workers. For new users, they will only make things worse, once something goes wrong, the new employee doesn't know where to solve it!

UseXCodeDevelopmentIOSOn the deviceApplicationsIt will also help you generate a lot of source files and resources. You don't need to change anything, so you can compile and run them. What happened from the main function to the application startup? The project generated by XCode contains a very simple main. m file. The code in it is simple, but apple recommends that you do not make any changes ):

 
 
  1. #import <UIKit/UIKit.h>       
  2. int main(int argc, char *argv[]) {    
  3.            NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];    
  4.     int retVal = UIApplicationMain(argc, argv, nil, nil);    
  5.     [pool release];    
  6.     return retVal;    
  7. }  

Once the UIApplication is executed, only the proxy method of the application can be seen.

 
 
  1. didFinishLaunchingWithOptions 

Executed.

What does UIApplicationMain do?

First, it looks for Info. plist XML file. Note that the file name is fixed. If you look at your project, you will find that the file name is <Application name>-Info. plist. It doesn't matter. This is the Project setting. It will be copied to Info at the time of release. plist. You can click info in Project> Edit Active Target "<Application name>. plist option to change which plist configuration file is used as the main configuration file for UIApplication. The UIApplication object reads the NSMainNibFile key in Info. plist and loads various properties of the UIApplication object based on the content of the nib file to which the key points.

Here we will talk about the nib file. Although this file is opened using interface builder, it contains not only the user interface, but also an object-C object database! The content stored in it is the attribute value of an object-C object. The theoretical point is an object serialized file, a program of the apple cocoa framework, you can use the content in this file to construct a pre-defined object instead of a class ).

Check the main nib file and you will see that XCode has implemented the UIApplicationDelegate protocol class for you. After you have created an object, the name is intuitive and you can check its connection attributes, you will find that it has been connected to the delegate attribute of the UIApplication object, which means that when the UIApplication object is built, its Delegate will be your application proxy class.

Needless to say later, connections have been established, and UIApplication objects call different proxy methods in sequence to start Event loop, the general infinite loop.

Finally, let's talk about acting for this thing ...... it is too mysterious. In fact, it is the interface in java or C #. It is estimated that object-C has appeared earlier and has not come up with such a proper name as interface.

Summary: AnalysisXCode ConstructionHow to startIOS ApplicationI hope this article will help you!

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.