常用设计模式之单例
作者:网络转载 发布时间:[ 2015/9/28 14:19:06 ] 推荐标签:软件测试技术 测试用例
4、在Cocoa Touch框架中,有UIApplication、UIaccelerometer、NSUserDefaults和NSNotificationCenter等单例。另外,NSFileManager和NSBundle类虽然属于Cocoa框架的内容,但也可以在Cocoa Touch框架中使用。(Cocoa框架中的单例类有NSFileManager、NSBundle、NSWorkspace和NSApplication等)。
4.1、UIApplication
UIApplication类的实例提供了应用程序的集中控制点来保持应用的状态。UIApplication实例总是分配给应用程序委托对象(UIApplicationDelegate),通过应用程序委托对象来响应低内存、应用启动、后台运行和应用终止等时间。下面我们重点介绍这个类的几个方法和属性。
4.1.1 + sharedApplication方法。创建和获得UIApplication实例的方法。
4.1.2 idleTimerDisabled属性。设定和获得“空闲时间禁止”的状态。默认值是NO,即默认情况下系统会锁定屏幕。
4.1.3 - openURL:方法。可以打开一些内置的iOS应用,其中包括打开浏览器、打开地图、拨打电话、发送短信和发送E-mail。
1//打开浏览器
2NSURL*url=[NSURLURLWithString:@"http://www.baidu.com"];
3[[UIApplicationsharedApplication]openURL:url];
4
5//打开Google地图时,实际上是通过内置浏览器打开的。
6NSString*searchQuery=@"中国西安??????";
7//将字符串转换为URL编码
8searchQuery=[searchQuerystringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
9NSString*urlString=[NSStringstringWithFormat:@"http://maps.google.com/maps?q=%@",searchQuery];
10[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:urlString]];
11
12//拨打电话
13[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:@"tel://123456"]];
14
15//发送短信
16[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:@"sms:123456"]];
17
18//发送E-mail,不带附件
19[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:@"mailto://xxxx@xxx.com"]];
4.2 UIAccelerometer
它可以访问重力加速计硬件设备,实时获得设备在x轴、y轴和z轴方向上的重力加速度。+sharedAccelerometer方法是创建和获得UIAccelerometer实例的共享方法。
与Application类似,这个类也有对应的委托对象,其委托对象是UIAccelerometerDelegate。UIAccelerometer犟实例分配给委托对象,然后由委托对象响应重力加速计时间。
4.3 NSUserDefaults
单例类NSUserDefaults可以很方便地读取应用设置项目。
+ standardUserDefaults方法是创建和获得NSUserDefaults实例的静态方法。
4.4 NSNotificationCenter
单例类NSNotificationCenter提供消息广播通知,它采用观察者模式的通知机制。
+ defaultCenter方法是创建和获得NSNotificationCenter实例的共享方法。
4.5 NSFileManager
NSFileManager提供了访问文件系统的通用操作,可以定位、创建、复制文件和文件夹。在iOS5和Mac OS X v10.7之后,它还可以管理存储在iCloud上的数据。
+ defaultManager方法是创建和获得NSFileManager实例的方法。除了该方法外,创建NSFileManager对象还可以使用实例构造方法- init。这两种方法有较大差别,+ defaultManager方法总是返回相同的NSFileManager对象,但如果要使用委托(NSFileManagerDelegate)完成基于文件的操作并接受通知,应该使用- init方法创建一个新的实例,而不是使用共享的对象。
4.5NSBundle
NSBundle提供了动态加载(或卸载)可执行代码、定位资源文件以及资源本地化、访问文件系统等功能。
+ mainBundle方法是创建和获得NSBundle实例的共享方法。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。

sales@spasvo.com