UIApplication

一个应用程序入口;

[UIApplication sharedApplication]; 获得对象

应用级别的操作:

1) 设置应用程序图标右上角的气泡数字;

[UIApplication sharedApplication].applicationIconBadgeNumber = 10;

2) 设置网络指示器:

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

3) 设置状态栏:

iOS 7开始提供两种管理状态栏的方式:

1> UIApplication管理:

info.plist中设置View controller-based status bar appearance 为NO;

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

2> 控制器中管理:

- (BOOL)prefersStatusBarHidden

{

return NO;

}

- (UIStatusBarStyle)preferredStatusBarStyle

{

return UIStatusBarStyleLightContent;

}

4) openURL:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://10086"]];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://10086"]];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://iosshiyulong@yeah.net"]];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://www.baidu.com"]];

URL:统一资源定位符,用来唯一的表示一个资源;

URL格式: 协议头://主机地址/资源路径

网络资源:http/ftp;

本地资源:file:///users/apple/desktop/log.png

UIApplication Delegate:委托处理应用程序各种环境下的系统事件;

启动完毕的回调方法:- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;

进入后台的回调方法:- (void)applicationDidEnterBackground:(UIApplication *)application;

内存警告的回调方法:- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application;

main函数:

#import <UIKit/UIKit.h>

#import "AppDelegate.h"

int main(int argc, char * argv[]) {

@autoreleasepool {

return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

}

}

argc:系统或者用户传入的参数个数;

argv:系统或者用户传入的实际参数;

1> 根据传入的第三个参数创建UIApplication对象;

2> 根据传入的第四个产生创建UIApplication对象的代理;

3> 设置刚刚创建出来的代理对象为UIApplication的代理;

4> 开启一个事件循环;

程序启动的完整过程:

1> main函数;

2> UIApplicationMain:创建UIApplication对象;创建UIApplication的delegate对象;

3> delegate对象开始处理(监听)系统事件:

A : 没有storyboard

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

在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;方法中创建UIWindow对象;

创建和设置UIWindow的rootViewController;

显示窗口;

B : 有storyboard

创建UIWindow;

创建和设置UIWindow的rootViewController;

显示窗口;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ( ̄ ︶  ̄)↗从老博客里搬过来的 一、程序启动UIApplicationMain UIApplication的基...
    石丘阅读 1,374评论 0 6
  • UIApplication深入研究 很多时候,我们不需要关心这个类,我们很少继承这个类,偶尔会调用这个类的api来...
    谁的青春不迷茫阅读 1,831评论 1 7
  • iOS-UIApplication详解 ✨建议收藏,用到时候一查就明白了 xx_cc UIApplication简...
    xx_cc阅读 18,347评论 15 117
  • 部分(15) 目录(?)[+] UIApplication的核心作用是提供了iOS程序运行期间的控制和协作工作。每...
    wzf_taker阅读 339评论 0 0
  • 你躺着,睁着眼睛,毫无聚焦,通红的眼睛望着天花板,闹钟一直响,可你没有一点反应,也许是眼睛太过酸涩,两行泪毫无预兆...
    拉萨街头阅读 458评论 17 13