一个应用程序入口;
[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> 开启一个事件循环;
![](https://img.haomeiwen.com/i1945813/6a66eeb928a86ad8.png)
程序启动的完整过程:
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;
显示窗口;
网友评论