1 - UIApplication
**1.2UIApplication的作用: **
1.设置应用程序的图标.
2.设置联网的状态.
3.设置状态栏.
4.打电话
5.发短信
6.应用之间跳转.
1.2.1 UIApplication常见属性
1.2 .2 状态栏与UIApplication
1.2.3利用UIApplication管理状态栏
**1.2.4 .openURL: **
2 - 如何实现openURL
2.1首先, 我们在storyboard中应该这样设置:
然后拖线(和原来一样)让这些控件成为我们控制器的方法:
** 2.2在这个方法中写代码:**
//打开URL
@IBAction func openURL() {
//1.获取应用程序对象
let app = UIApplication.sharedApplication()
let url = NSURL(string: "http://www.baidu.com")
app.openURL(url!)
}
//设置状态栏
@IBAction func setStateBar() {
//1.获取应用程序对象
let app = UIApplication.sharedApplication()
//2.设置应用状态栏,设置之前, 要在info.plist文件当中设置 View controller-based status bar appearance == NO
//2.1设置状态栏样式.
app.statusBarStyle = .LightContent
}
//设置应用图标数字
@IBAction func setAppIconNum() {
//注册用户通知
let app = UIApplication.sharedApplication()
//设置用户通知类型
let setting = UIUserNotificationSettings(forTypes: UIUserNotificationType.Badge, categories: nil)
app.registerUserNotificationSettings(setting)
//设置应用图标数字
app.applicationIconBadgeNumber = 10
}
//设置连网状态
@IBAction func setNetState() {
//1.获取应用程序对象
let app = UIApplication.sharedApplication()
//2.设置连网状态
app.networkActivityIndicatorVisible = true
}
只要我们点击了, 我们在storyboard中添加的控件, 它就会做一些相应的类似于打电话 发短信也是这样指令
而我们图片上的打电话 , 发短信也是同样的道理
3如何实现类的单例
**3.1什么是单例: **
每一个应用程序都有一个应用程序对象(UIApplication)
这个对象是程序一启动的时候就创建的.
而且起起至终之有一个.它是一个单例.
3.2为何实现单例
在我们的实际应用中, 我们不可能只是用系统提供的单例, 有时候, 也是需要我们自己创造单例的
**3.3 如何创立单例 **
首先, 要创建一个类, 这个类具有一个类方法(`shareXXX`)XXX为类名
其次, 我们需要在alloc方法中判断我们的这个类是否有值, 如果有,第一步: 将已有的对象赋值给后创建的对象, 第二步: 抛出异常(让系统崩掉)
如果没有, 就直接调用[super alloc];
**3.3.1具体的代码样式: **
import UIKit
class Person: NSObject {
static var per:Person?
// MARK: -初始化方法
override class func initialize() {
per = Person()
}
class func shareInstance()->Person {
return per!
}
override init() {
if Person.per != nil {
//创建异常
let exc = NSException(name: "NSInternalInconsistencyException", reason: "There can only be one Person instance.", userInfo: nil)
//抛出异常
exc.raise()
}
super.init()
}
}
4 UIApplication 代理
关于我们的UIApplication代理
其实我们在创建一个新的程序的时候, 他就已经帮我们给写好了:
4.1方法及其调用的时间:
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
// 应用程序启动完毕时调用
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
return true
}
// 应用程序将要失去焦点时调用
func applicationWillResignActive(application: UIApplication) {
}
// 应用程序进入到后台时调用
func applicationDidEnterBackground(application: UIApplication) {
}
// 应用程序进入前台时调用
func applicationWillEnterForeground(application: UIApplication) {
}
// 应用程序获取焦点时调用
func applicationDidBecomeActive(application: UIApplication) {
}
// 应用程序退出时调用
func applicationWillTerminate(application: UIApplication) {
}
// 应用程序收到内存警告时调用
func applicationDidReceiveMemoryWarning(application: UIApplication) {
}
}