星空网 > 软件开发 > 操作系统

iOS学习之UIApplication及其代理

1. 什么是UIApplication

  • UIApplication 对象是应用程序的象征,不能手动创建,不能 alloc init,一个应用程序只允许 一个 。

  • 每个应用都有自己的 UIApplication 对象,而且是单例。

  通过 [UIApplication shareApplication] 可以获取这个单例对象。  

  弄成单例的原因:

   UIApplication 对象是用来设置应用全局信息的,一个应用程序如果有很多 UIApplication 对象,都不知道听谁的。

  • 一个iOS程序启动后创建第一个对象就是 UIApplication 对象。

  • 利用 UIApplication 对象,能进行一些应用级别的操作。

2. UIApplication的作用(常用的属性和方法)

 UIApplication 一般用来做一些应用级别的操作(app提醒框,控制联网的状态,打电话,打开网页)。

 1> 设置appIcon提醒数字

  图标需要手动清除,应用程序关闭,不会自动清除。

  iOS头文件中的属性声明:

@property(nonatomic) NSInteger applicationIconBadgeNumber __TVOS_PROHIBITED; // set to 0 to hide. default is 0. In iOS 8.0 and later, your application must register for user notifications using -[UIApplication registerUserNotificationSettings:] before being able to set the icon badge.

  通过注释我们可以得知:iOS8之后必须注册用户通知,注册后才能显示提醒数字

  注册用户通知方法声明:

// Registering UIUserNotificationSettings more than once results in previous settings being overwritten.- (void)registerUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings NS_AVAILABLE_IOS(8_0) __TVOS_PROHIBITED;

  iOS8.0推出注册用户通知的目的是为了提高用户的体验,对于有强迫症的用户可以通过这个通知将提醒数字关闭。

  实例代码:

// 通过单例方法获取 UIApplication 对象UIApplication *app = [UIApplication sharedApplication];// 设置appIcon提醒数字,iOS8之后必须注册用户通知app.applicationIconBadgeNumber = 10;// 创建用户通知UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];// 注册用户的通知[app registerUserNotificationSettings:settings];

  用户通知如图:

iOS学习之UIApplication及其代理images/loading.gif' data-original="data:image/png;base64,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

  点击 " 好 " 后就可以看到类似于QQ消息数量的提醒,如图:

iOS学习之UIApplication及其代理

  点击 " 不允许 "后就没有,如图

iOS学习之UIApplication及其代理

 2> 设置联网状态

  显示联网状态,告诉用户此应用正在联网。  

  iOS头文件中的属性声明:

@property(nonatomic,getter=isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible __TVOS_PROHIBITED; // showing network spinning gear in status bar. default is NO

  实例代码:

  // 设置联网状态  app.networkActivityIndicatorVisible = YES;

  效果图:

iOS学习之UIApplication及其代理

 3>  打开网页

  iOS头文件中的方法声明:

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

 实例代码:

#pragma mark - 打开网页- (IBAction)btnClick:(id)sender {    // URL:资源路径  // URL:协议头://域名+路径 http,https,file,tel  // 协议头:  // 打开网页 @"http://www.baidu.com"    NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];    [[UIApplication sharedApplication] openURL:url];}

  UIApplication 打开资源的好处:不用判断用什么软件打开,系统会自动根据协议头判断。

3. UIApplication 的代理方法

 我们可以进入到 UIApplicationDelegate 的头文件看到它的代理方法有很多,常用的也就是你创建一个 Single View Application 工程中在 AppDelegate 中生成的,下面代码就是,这些代理具体如何使用详见代码注释。

 实例代码:

#import "AppDelegate.h"@interface AppDelegate ()@end@implementation AppDelegate// 学习代理方法,只需要知道这个方法什么时候调用,这个方法可以用来干嘛// 程序启动完成后调用(常用)- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  // Override point for customization after application launch.  NSLog(@"%s__%d", __FUNCTION__, __LINE__);  return YES;}// 当app失去焦点的时候调用- (void)applicationWillResignActive:(UIApplication *)application {  NSLog(@"%s__%d", __FUNCTION__, __LINE__);  // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.  // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.}// app进入后台的时候调用(常用)// app忽然被打断的时候,在这里保存一些需要用到的数据- (void)applicationDidEnterBackground:(UIApplication *)application {  NSLog(@"%s__%d", __FUNCTION__, __LINE__);  // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.  // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.}// app即将进入前台的时候调用- (void)applicationWillEnterForeground:(UIApplication *)application {  NSLog(@"%s__%d", __FUNCTION__, __LINE__);  // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.}// 当app获取到焦点的时候调用,意味着app可以和用户交互- (void)applicationDidBecomeActive:(UIApplication *)application {  NSLog(@"%s__%d", __FUNCTION__, __LINE__);  // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.}// app被关闭的时候调用- (void)applicationWillTerminate:(UIApplication *)application {  NSLog(@"%s__%d", __FUNCTION__, __LINE__);  // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.}// app接受内存警告的时候被调用(常用)// 清空图片缓存 - (void)applicationDidReceiveMemoryWarning:(UIApplication *)application{  NSLog(@"%s__%d", __FUNCTION__, __LINE__);}@end

 




原标题:iOS学习之UIApplication及其代理

关键词:IOS

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

海运菲律宾:https://www.goluckyvip.com/tag/92264.html
柬埔寨海运时间:https://www.goluckyvip.com/tag/92265.html
伦敦海运:https://www.goluckyvip.com/tag/92266.html
新德里海运:https://www.goluckyvip.com/tag/92267.html
PB广告:https://www.goluckyvip.com/tag/9227.html
海运肯尼亚:https://www.goluckyvip.com/tag/92270.html
川藏线自驾游要怎么走才比较划算呢?:https://www.vstour.cn/a/411240.html
去日本入住酒店,东西随意用却有一个特殊“要:https://www.vstour.cn/a/411241.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流