1.0 UIApplication对象
|
|
举例:通过代码获取两个UIApplication对象,打印地址可以看出地址是相同的。
- (void)viewDidLoad {
|
|
打印结果:
2015-12-02 13:34:58.847 01 UIApplication[4563:852645] app1=0x7fe2b3e0eaa0 ---- app2 = 0x7fe2b3e0eaa0
|
|
|
举例:
- (void)viewDidLoad {
|
|
打印结果:
2015-12-02 13:39:00.270 01 UIApplication[4675:867735] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'There can only be one UIApplication instance.'
|
|
| (1)应用图标显示数字 (详见1.1 常用属性) |
| (2)状态栏上的等待图标指示器 (详见1.1 常用属性) |
|
(3)利用UIApplication打开某个资源 (openURL:方法)
✓系统会自动根据协议识别使用某个app打开
//打开一个网页 : ✓使用openURL方法也可以打开其他应用,在不同应用之间互相调用对方。
美图秀秀, 点击分享到"新浪微博", 打开"新浪微博"选择账号, 跳转回"美图秀秀", 开始分享
喜马拉雅, 使用微博、QQ 账号 登录。都需要应用程序间跳转。
|
| (4)通过UIApplication管理状态栏 (详见1.2 管理状态栏) |
//应用程序图标右上角的红色提醒数字(默认为0)
@property(nonatomic) NSInteger applicationIconBadgeNumber; 举例: - (void)viewDidLoad {
[super viewDidLoad]; //获取单例对象
UIApplication *app = [UIApplication sharedApplication]; // 创建用户通知设置 (iOS8 后要求设置通知的时候必须经过用户许可)
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
UIUserNotificationSettings *settings =
[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge
categories:nil];
//注册权限
[app registerUserNotificationSettings:settings];
} //设置数字
app.applicationIconBadgeNumber = ; }
//联网指示器的可见性 (默认为 no)
@property(nonatomic,getter=isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible;
举例: - (void)viewDidLoad {
[super viewDidLoad]; //获取单例对象
UIApplication *app = [UIApplication sharedApplication]; //设置网络指示器
app.networkActivityIndicatorVisible = YES; }
//状态栏的样式
-(UIStatusBarStyle)preferredStatusBarStyle; //状态栏的可见性
-(BOOL)prefersStatusBarHidden;
// 状态栏可见性(默认为 no) --- UIViewController管理 (推荐使用)
- (BOOL)prefersStatusBarHidden {
return NO;
} //状态栏的样式 --- UIViewController管理 (推荐使用)
- (UIStatusBarStyle)preferredStatusBarStyle { /* 状态栏样式 statusBarStyle
UIStatusBarStyleDefault 状态栏为黑色
UIStatusBarStyleLightContent 状态栏为白色
UIStatusBarStyleBlackTranslucent
UIStatusBarStyleBlackOpaque
*/ return UIStatusBarStyleDefault;
}
|
(1)在ios 7 以后如果要通过UIApplication管理,则首先要在Info.plist文件中增加一个配置项
|
//状态栏的样式 --- UIApplication管理 |
| UIApplication:状态栏的样式只设置一次,使用动画效果 |
| UIViewController:状态栏是否隐藏,样式不一样 |
|
|
delegate可处理的事件如:
|
|
| 文件位置:Supporting Files —> main.m |
#import <UIKit/UIKit.h> |
| AppDelegate的主要作用就是处理(监听)应用程序本身的各种事件 |
| 要想成为UIApplication的代理对象, 必须遵守:UIApplicationDelegate协议 |

// AppDelegate.h #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) UIWindow *window; @end |
// AppDelegate.m #import "AppDelegate.h" @interface AppDelegate () @end @implementation AppDelegate // app启动完成 调用该方法 启动之后,将不再调用此方法!
// 如果因为内存等原因,应用程序被操作系统干掉,再次点击图标,会调用此方法!
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSLog(@"%s", __func__);
return YES;
} // app即将退出活动状态的时候调用 (将要失去焦点:不能和用户交互)( 此方法在来电或来短信的时候被调用)
// 游戏应该再此方法中暂停游戏进程!此方法在游戏开发中尤为重要!
- (void)applicationWillResignActive:(UIApplication *)application {
NSLog(@"%s", __func__);
} // app已经进入后台 调用该方法 (在此方法中保存应用程序的数据和状态)
// 应用程序退出到后台,释放共享资源,保存用户数据,停止时钟,保存足够的应用程序状态信息...
- (void)applicationDidEnterBackground:(UIApplication *)application {
NSLog(@"%s", __func__);
} // app即将进入前台的时候 调用该方法 (在此方法中还原应用程序的数据和状态)
- (void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"%s", __func__);
} // app已经进入活动状态, 重新启动原来暂停的状态 (重新获取焦点:可以和用户交互)
- (void)applicationDidBecomeActive:(UIApplication *)application { NSLog(@"%s", __func__);
} // app接收到内存警告 调用该方法
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {
NSLog(@"%s", __func__);
} // app将要被杀死 调用该方法
// 注意:1.用户主动关闭 2.系统因为内存不够关闭了程序
- (void)applicationWillTerminate:(UIApplication *)application { NSLog(@"%s", __func__);
}
@end
1.0 UIApplication对象的更多相关文章
- UIApplication对象及其代理UIApplicationDelegate[转]
在开发过程中我们需要一些全局对象来将程序的各个部分连接起来,这些全局对象中最重要的就是UIApplication对象.但在实际编程中我们并不直接和UIApplication对象打交道,而是和其代理打交 ...
- jq对象转为dom对象:$(".div1")[0] dom对象转为jq对象:$(dom对象)
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- 转载:as3.0下对象类型返回值与变量默认值的详细说明
转自:http://www.cuplayer.com/player/PlayerCodeAs/2012/0905367.html Null.NaN.undefined 及各自应用对象:变量的默认值: ...
- 8.0 BOM对象
主要的掌握的知识结构图 1 Window 2 控制窗口.框架.弹出窗口 3 利用location对象中的页面信息 4 使用 navigator 对象了解浏览器 1.1 BOM的核心对象是window, ...
- C#使用AutoMapper6.2.2.0进行对象映射
先说说DTO DTO是个什么东东? DTO(Data Transfer Object)就是数据传输对象,说白了就是一个对象,只不过里边全是数据而已. 为什么要用DTO? 1.DTO更注重数据,对领域对 ...
- [Xcode 实际操作]八、网络与多线程-(2)使用UIApplication对象打开网页
目录:[Swift]Xcode实际操作 本文将演示如何使用应用程序单例对象,打开指定的网页. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKi ...
- [Xcode 实际操作]八、网络与多线程-(3)使用UIApplication对象拨打电话
目录:[Swift]Xcode实际操作 本文将演示如何使用应用程序单例对象,拨打电话的功能. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] 注:需要使用真机进行测 ...
- [Xcode 实际操作]八、网络与多线程-(4)使用UIApplication对象发送短信
目录:[Swift]Xcode实际操作 本文将演示如何使用应用程序单例对象,发送短信的功能. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] 注:需要使用真机进行测 ...
- [Xcode 实际操作]八、网络与多线程-(5)使用UIApplication对象发送邮件
目录:[Swift]Xcode实际操作 本文将演示如何使用应用程序单例对象,发送邮件的功能. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] 注:需要使用真机进行测 ...
随机推荐
- 看完《Thinking in Java》后,我觉得自己就是一个不懂编程的小孩子,如何快速摆脱这种自卑感
我虽然不懂java也不懂程序员,但我理解这种心情.当看到自己还算自信的专业领域中一部超越自己水平很多的作品或比自己优秀太多的人,难免会感到震惊,继而进行自我否定.就像我曾经非常喜欢写作,在杂志和校报上 ...
- Google Map API Version3 :代码添加和删除marker标记
转自:http://blog.sina.com.cn/s/blog_4cdc44df0100u80h.html Google Map API Version3 教程:在地图 通过代添加和删除mark标 ...
- Canvas实例
<!doctype html> <html> <head> <meta charset="utf-8" /> <title&g ...
- Spring实战 (第3版)——AOP
在软件开发中,分布于应用中多处的功能被称为横切关注点.通常,这些横切关注点从概念上是与应用的 业务逻辑相分离的(但是往往直接嵌入到应用的业务逻辑之中).将这些横切关注点与业务逻辑相分离正是 面向切面编 ...
- 循环中的continue功能
在oracle存储过程中,有时我们希望在循环中为某种情况时不做任何处理,类似于c语言中的continue,跳过本次循环:在oracle 11g中好像增加了这个关键字,在之前版本中我们可以通过如下方式来 ...
- jQuery1.11源码分析(1)-----Sizzle源码概览[原创]
最近在啃jQuery1.11源码,上来就遇到Sizzle这个jQuery的大核心,虽然已经清楚了Sizzle的用途,先绕过去也没事,但明知山有虎偏向虎山行才是我们要做的. 本文面向的阅读对象:正在学习 ...
- Android Activity的加载的模式
---恢复内容开始--- 本文来自http://www.cnblogs.com/lwbqqyumidi/p/3771542.html launchMode在多个Activity跳转的过程中扮演着重要的 ...
- MySQL 事物控制和锁定语句
一.MySQL支持对MyISAM和MEMORY存储引擎的表进行表级锁定,对InnoDB存储引擎的表进行行集锁定.默认情况下是自动获得. 二.LOCK TABLES 可以用于锁定当前线程获得的表,如果表 ...
- hihoCoder 1196 高斯消元·二
Description 一个黑白网格,点一次会改变这个以及与其连通的其他方格的颜色,求最少点击次数使得所有全部变成黑色. Sol 高斯消元解异或方程组. 先建立一个方程组. \(x_i\) 表示这个点 ...
- from collections import OrderedDict
在python中,dict这个数据结构由于hash的特性,是无序的,这在有时候会给我们带来一些麻烦,幸运的是, collections模块为我们提供了OrderdDict,当你要获取一个有序的字典对象 ...