UIApplication

1 - UIApplication

UIApplication_第1张图片

**1.2UIApplication的作用: **

1.设置应用程序的图标.
2.设置联网的状态.
3.设置状态栏.
4.打电话
5.发短信
6.应用之间跳转.

1.2.1 UIApplication常见属性

UIApplication_第2张图片

1.2 .2 状态栏与UIApplication

UIApplication_第3张图片

1.2.3利用UIApplication管理状态栏

UIApplication_第4张图片

**1.2.4 .openURL: **

UIApplication_第5张图片

2 - 如何实现openURL

2.1首先, 我们在storyboard中应该这样设置:

UIApplication_第6张图片
然后拖线(和原来一样)让这些控件成为我们控制器的方法: 

** 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代理
其实我们在创建一个新的程序的时候, 他就已经帮我们给写好了:  
UIApplication_第7张图片

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) {
    
}

}

你可能感兴趣的:(UIApplication)