`
cwlong
  • 浏览: 10588 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

IOS开发 - IOS程序的完整启动过程

    博客分类:
  • Ios
阅读更多

1. Info.plist和pch文件的作用

2. UIApplication的常见使用

3. AppDelegate的代理方法

4. UIApplication , AppDelegate , UIWindow , UIViewController 的关系

5. IOS程序的完整启动过程


﹣IOS程序的完整启动过程﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣我是分割线﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣

// 1.1程序一执行就会执行main函数

int main(int argc, char * argv[]) {
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

// 2.然后会执行UIApplicationMain
 int UIApplicationMain(int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName);

// 2.1根据参数 principalClassName 创建UIApplication对象
// 2.2根据参数 delegateClassName 创建UIApplication的delegate对象

//3. delegate对象开始处理(监听)系统事件,分两种情况(有storyboard和没storyboard)

//3-1.delegate对象开始处理(监听)系统事件(没有storyboard)

//3-1-1 程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    //3-1-2 在application:didFinishLaunchingWithOptions:中创建UIWindow
self.window = [[UIWindow alloc] initWithFrame:[[uiScreen mainScreen] bounds]];

    //3-1-3 创建和设置UIWindow的rootViewController(根控制器)
   CwlMainViewController *mainViewController = [CwlMainViewController alloc] init];
   
   self.window.rootViewController = mainViewController; // 设置根控制器
   
    //3-1-4 显示窗口
    [self.window makeKeyAndVisable];

    return YES;
}


//3-2.根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard(有storyboard)
// 创建UIWindow
// 创建和设置UIWindow的rootViewController
// 显示窗口



控制器创建view的完整过程


* 控制器的view是延迟加载









  • 大小: 336.5 KB
分享到:
评论

相关推荐

    iOS应用开发攻略

    美国Matt Drance、Paul Warren编著的《iOS应用开发攻略》收录了最新的iOS软件开发的最佳做法,涵盖了应用开发及构建优雅解决方案的必备知识,包括:编写通用的启动画面和嵌入式Web浏览器;构建复杂表视图;使app或...

    iOS-RestKit-Node-Express:一个 iOS 应用程序,用于演示如何将 RestKit requestresponse 与 ExpressJS REST 服务一起使用

    一个 iOS 应用程序,用于演示如何将 RestKit 请求/响应与使用 ExpressJS 开发的 REST Web 服务一起使用 #后端安装 cd iOS-RestKit-Node-Express-Server 须藤 npm 安装 #如何使用 cd iOS-RestKit-Node-Express-...

    iOS Project Builder for Windows 3.6

    Unity在Windows上构建和部署您的iOS项目,不再需要切换到Mac并启动...只需从Apple的iOS开发人员计划重新使用您的数字签名身份(或创建一个新的)。如果您的设备越狱,那就更简单了:在这种情况下,不需要签名身份。

    iOS如何自定义启动界面实例详解

    当我们打开一款应用程序的时候,首先映入眼帘的往往并不是程序的主界面,而是经过精心设计的欢迎界面,这个界面通常会...下面这篇文章主要给大家介绍了关于iOS如何自定义启动界面的相关资料,需要的朋友可以参考下。

    newsFeed-NYT-iOS:使用纽约时报API的iOS实时新闻源应用程序-适用于iOS的服务器发送的事件

    适用于iOS的服务器发送事件使用纽约时报API的适用于iOS的实时新闻订阅源应用程序 本教程演示了如何使用Streamdata.io实现iOS的Servent-Sent Event(又名SSE)。请参阅上的相关博客文章。 请按照以下步骤操作: 1-...

    实时修改您的本机iOS应用。-Swift开发

    特质允许您修改本机iOS应用程序的设计和行为,而不必在全球范围内重新启动它们。 不会的特性-实时修改您的本机iOS应用程序属性。 什么是性状? 特质允许您修改本机iOS应用程序的设计和行为,而不必在全球范围内重新...

    解决应用启动时白屏或者黑屏的问题

    解决应用启动时白屏或者黑屏的问题,就是每次程序启动都会出现短暂的闪屏现象

    一步一步学习IOS6

    第八部分:如何在iOS App中添加启动画面? 第九部分:从UITableView中删除一行和Model-View-Controller 第十部分:使用Storyboards创建导航控制器和表视图 第十一部分:Storyboard 联线教程-在视图控制器间传递数据 ...

    音乐类听歌小程序 uni-app 微信小程序

    使用uni-app开发的音乐类听歌小程序,适配android/ios全名屏,刘海屏,异形屏等,目前仅支持h5端及微信小程序端。 安装项目依赖:npm install 前端启动命令: H5:npm run dev:h5 微信小程序:npm run dev:mp-...

    iOS程序调试工具simject.zip

    simject是一个命令行工具和iOS动态库,使开发人员能够轻松地在iOS模拟器上调试程序。simject 的安装(需要安装最新版本的Theos)git clone https://github.com/angelXwind/simject.gitcd simject/make setup注:...

    一步步学IOS5编程完整版

    第八部分:如何在iOS App中添加启动画面? 第九部分:从UITableView中删除一行和Model-View-Controller 第十部分:使用Storyboards创建导航控制器和表视图 第十一部分:Storyboard 联线教程-在视图控制器间传递数据 ...

    ios多文件编程

    ios多文件编程用法: 作用:保存应用的信息,软件名称、版本号等等,相当于身份证 Bundle name:程序名称,不能超过12个字节 Bundle versions string, short:APP版本号 Bundle identifier:APP项目唯一标识 Bundle ...

    iOS开发学习之监测程序的崩溃次数详解

    本文主要给大家介绍的是关于iOS如何监测程序崩溃次数的相关内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍: 在写代码之前,我们先弄明白一个app运行的流程。 程序运行启动时依次调用  1.启动...

    数独iOS

    Sudoku Arcade Style iOS-应用程序 使用Swift中的Storyboard界面构建的本地iOS应用程序。 不同于典型的9x9 Sudoku棋盘,这是一个街机游戏变体,其中通过使用4x4棋盘来缩短游戏时间。 怎么跑 需要Mac git clone ...

    使用 Flex 和 Flash Builder 开发手机应用程序

    使用 Flex 和 Flash Builder 开发手机应用程序 目录 第 1 章: 入门 手机应用程序入门 手机、桌面和浏览器应用程序开发的差异 第 2 章: 开发环境 在 Flash Builder 中创建 Android 应用程序 在 Flash Builder 中...

    ios-colissimo-tracker:使用使用 TDD 方法开发的简单跟踪应用程序跟踪您的 Colissimo 软件包

    这是我在阅读 Graham Lee 编写的之后使用 TDD 方法开发的第一个应用程序。 这个存储库是做什么用的? 我的目标是分享一个如何对 iOS 应用程序进行单元测试的示例。 我不打算维护这个存储库,所以项目中使用的 API ...

    Surf-iOS-Developers:Surf的主要iOS资料库

    Surf MVP是我们开发应用程序UI层的标准 Surf MVP +协调器是SurfMVP的附加组件,旨在简化应用程序内的导航。 代码生成 Generamba模板-包含一组模板,用于为Generamba生成代码(ViewController模板,Presenter模板等...

Global site tag (gtag.js) - Google Analytics