IOS的Application

1.application启动的路径

 1 Supporting Files --->main.m
 2 int main(int argc, char * argv[])
 3 {
 4     @autoreleasepool {
 5         /*
 6          argc: 系统或者用户传入的参数个数
 7          argv: 系统或者用户传入的实际参数
 8
 9          */
10         // return UIApplicationMain(argc, argv, nil, NSStringFromClass([NJAppDelegate class]));
11
12         // return UIApplicationMain(argc, argv, @"UIApplication", NSStringFromClass([NJAppDelegate class]));
13
14         /*
15          1.根据传入的第三个参数创建UIApplication对象
16          2.根据传入的第四个产生创建UIApplication对象的代理
17          3.设置刚刚创建出来的代理对象为UIApplication的代理
18          4.开启一个事件循环
19          */
20          return UIApplicationMain(argc, argv, @"UIApplication", @"NJAppDelegate");
21     }
22 }

2.application生命周期

 1 // 当应用程序启动完毕的时候就会调用(系统自动调用)
 2 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 3 {
 4     // Override point for customization after application launch.
 5     NSLog(@"didFinishLaunchingWithOptions");
 6     return YES;
 7 }
 8 // 即将失去活动状态的时候调用(失去焦点, 不可交互)
 9 - (void)applicationWillResignActive:(UIApplication *)application
10 {
11     NSLog(@"ResignActive");
12 }
13
14 // 重新获取焦点(能够和用户交互)
15 - (void)applicationDidBecomeActive:(UIApplication *)application
16 {
17
18     NSLog(@"BecomeActive");
19 }
20
21 // 应用程序进入后台的时候调用
22 // 一般在该方法中保存应用程序的数据, 以及状态
23 - (void)applicationDidEnterBackground:(UIApplication *)application
24 {
25
26     NSLog(@"Background");
27 }
28
29 // 应用程序即将进入前台的时候调用
30 // 一般在该方法中恢复应用程序的数据,以及状态
31 - (void)applicationWillEnterForeground:(UIApplication *)application
32 {
33
34     NSLog(@"Foreground");
35 }
36
37 // 应用程序即将被销毁的时候会调用该方法
38 // 注意:如果应用程序处于挂起状态的时候无法调用该方法
39 - (void)applicationWillTerminate:(UIApplication *)application
40 {
41
42 }
43
44 // 应用程序接收到内存警告的时候就会调用
45 // 一般在该方法中释放掉不需要的内存
46 - (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
47 {
48     NSLog(@"MemoryWarning");
49 }
50 @end

Supporting Files--->UIApplication-Prefix.pch文件

//表示所有的.m文件都自动引用 

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif

程序启动的完整过程

 1 1.main函数
 2
 3 2.UIApplicationMain
 4 * 创建UIApplication对象
 5 * 创建UIApplication的delegate对象
 6
 7 3.delegate对象开始处理(监听)系统事件(没有storyboard)
 8 * 程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法
 9 * 在application:didFinishLaunchingWithOptions:中创建UIWindow
10 * 创建和设置UIWindow的rootViewController
11 * 显示窗口
12
13 3.根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard(有storyboard)
14 * 创建UIWindow
15 * 创建和设置UIWindow的rootViewController
16 * 显示窗口
时间: 2024-10-11 04:45:44

IOS的Application的相关文章

iOS利用Application Loader打包提交到App Store时遇到错误The filename 未命名.ipa in the package contains an invalid character(s). The valid characters are:A-Z ,a-z,0-9,dash,period,underscore,but the name cannot start w

iOS利用Application Loader打包提交到App Store时遇到错误: The filename 未命名.ipa in the package contains an invalid character(s). The valid characters are:A-Z,a-z,0-9,dash,period,underscore,but the name cannot start with a dash,period,or underscore. 解决方法:在Archive之后得

iOS 11 application 新特性

1.- (void)applicationWillResignActive:(UIApplication *)application 说明:当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了 2.- (void)applicationDidBecomeActive:(UIApplication *)application 说明:当应用程序入活动状态执行,这个刚好跟上面那个方法相反 3.- (void)applicationDidEnterBackground:(UI

iOS开发基础知识--碎片32

 iOS开发基础知识--碎片32 1:动画属性UIViewAnimationOptions说明 a:常规动画属性设置(可以同时选择多个进行设置) UIViewAnimationOptionLayoutSubviews:动画过程中保证子视图跟随运动. UIViewAnimationOptionAllowUserInteraction:动画过程中允许用户交互. UIViewAnimationOptionBeginFromCurrentState:所有视图从当前状态开始运行. UIViewAnimat

iOS应用程序内购/内付费

最近应用审核被拒绝了,原因是因为使用了第三方支付,苹果说需要使用到应用内购买.但是查了下相关资料,太杂且不详细,好吧,所以现在自己来写博客咯,把我所知道的一一列出来,可能内容有点乱,大家就将就着些吧 一.创建应用 首先进入苹果的ItunesConnection(https://itunesconnect.apple.com)点击左上角的加号新建一个App应用,点击后该网站会弹出一个信息编辑框,大家只要将上面的信息填充完毕点击save即可在苹果的app平台上拥有一个属于自己的App. 在套装ID的

iOS开发-Realm数据库

Realm Realm-Object-c,见:https://realm.io/cn/docs/objc/latest/Realm官网:https://realm.io 使用流程 导入头文件#import < Realm/Realm.h >. 创建类,继承于RLMObject. 在类中生成数据模型. 在需要的地方创建实例,使用Realm方法调用. 数据模型 创建简单数据模型 简单地,继承RLMObject创建类,在.h中通过属性定义不同的内容. RLMResults <0x7fe5e3d

iOS上Delegate的悬垂指针问题

文章有点长,写的过程很有收获,但读的过程不一定有收获,慎入 [摘要] 悬垂指针(dangling pointer)引起的crash问题,是我们在iOS开发过程当中经常会遇到的.其中由delegate引发的此类问题更是常见.本文由一个UIActionSheet引发的delegate悬垂指针问题开始,逐步思索和尝试解决这类问题的几种方案并进行比较. [正文] UIActionSheet是一个常用的iOS系统控件,用法很简单,实现UIActionDelegate协议方法,然后通过showInView:

iOS开发常用三方库、插件、知名博客等等

TimLiu-iOS   Swift版本点击这里 欢迎加入QQ交流群: 594119878 介绍 这是一个用于iOS开发的各种开源库.开源资料.开源技术等等的索引库. github排名 https://github.com/trending,github搜索:https://github.com/search 使用方法 根据目录关键字搜索,记得包含@,以保证搜索目录关键字的唯一性. 问题反馈 期待大家和我们一起共同维护,同时也期望大家随时能提出宝贵的意见(直接提交issues即可).请广大网友只

iOS大神班笔记03-UIApplication

UIApplication简介: UIApplication对象是应用程序的象征. 每一个应用程序都有自己的UIApplication对象,而且是单例. 一个iOS程序启动后创建的第一个对象就是UIApplication对象. 通过UIApplication *app = [UIApplication sharedApplication];可以获得这个单例对象. 利用UIApplication对象能进行一些应用级别的操作. 利用UIApplication对象能进行一些应用级别的操作. 设置应用程

iOS 强大第三方资源库

Github用法 git-recipesGit recipes in Chinese. 高质量的Git中文教程. lark怎样在Github上面贡献代码 my-git有关 git 的学习资料 gitignore非常赞 有用的.gitignore模板集合(忽略上传的文件集合),包含了各种语言. 完整[email protected] open-source-ios-apps- iOS开源App集合,分:swift与Objective-C--国外人整理. NewsBlur作者独自一个人 Samuel