IOS学习之UIApplication

来源:互联网 发布:sql limit 1 offset 1 编辑:程序博客网 时间:2024/05/16 01:14
UIApplication对象是应用程序的象征
每一个应用都有自己的UIApplication对象,而且是单例的
通过[UIApplicationsharedApplication]可以获得这个单例对象
一个iOS程序启动后创建的第一个对象就是UIApplication对象
利用UIApplication对象,能进行一些应用级别的操作

UIApplication的常用属性

设置应用程序图标右上角的红色提醒数字

@property(nonatomic)NSIntegerapplicationIconBadgeNumber;

设置联网指示器的可见性

@property(nonatomic,getter=isNetworkActivityIndicatorVisible)BOOLnetworkActivityIndicatorVisible;

如果想利用UIApplication来管理状态栏,首先得修改Info.plist的设置
View controller-based status bar appearance 值设置为YES


openURL:

UIApplication有个功能十分强大的openURL:方法

-(BOOL)openURL:(NSURL*)url;

Ø打电话

UIApplication *app= [UIApplicationsharedApplication];

[app openURL:[NSURLURLWithString:@"tel://10086"]];

Ø发短信

[app openURL:[NSURLURLWithString:@"sms://10086"]];

Ø发邮件

[app openURL:[NSURLURLWithString:@"mailto://12345@qq.com"]];

Ø打开一个网页资源

[app openURL:[NSURLURLWithString:@"http://ios.itcast.cn"]];

Ø打开其他app程序
。。。。。


UIApplicationdelegate

app受到干扰时,会产生一些系统事件,这时UIApplication会通知它的delegate对象,让delegate代理来处理这些系统事件

// app接收到内存警告时调用

-(void)applicationDidReceiveMemoryWarning:(UIApplication *)application;

// app进入后台时调用(比如按了home键)

-(void)applicationDidEnterBackground:(UIApplication *)application;

//app启动完毕时调用

-(BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions;


UIApplicationMain

main函数中执行了一个UIApplicationMain这个函数
intUIApplicationMain(intargc,char *argv[],NSString *principalClassName,NSString *delegateClassName);
Øargcargv:直接传递给UIApplicationMain进行相关处理即可
ØprincipalClassName:指定应用程序类app的象征),该类必须是UIApplication(或子类)。如果为nil,则用UIApplication类作为默认值
ØdelegateClassName:指定应用程序的代理类,该类必须遵守UIApplicationDelegate协议
UIApplicationMain函数会根据principalClassNameUIApplication象,根据delegateClassName创建一个delegate对象,并将该delegate对象赋值给UIApplication象中的delegate属性
接着会建立应用程序的MainRunloop(事件循环),进行事件的处理(首先会在程序完毕后delegate象的application:didFinishLaunchingWithOptions:方法)
程序正常退出时UIApplicationMain函数才返回

0 0
原创粉丝点击