1. 程式人生 > >IOS資料處理及版本特性-退出系統前的事件處理以及首次開啟app的處理

IOS資料處理及版本特性-退出系統前的事件處理以及首次開啟app的處理

//
//  ViewController.swift
//  DemoApp
//
//  Created by 郭文亮 on 2018/11/19.
//  Copyright © 2018年 finalliang. All rights reserveds
//
import UIKit
class ViewController: UIViewController{
    override func viewDidLoad() {
        super.viewDidLoad()
        test2()
      test1()
        
    }
    //USERDefauls的使用 用於儲存程式的配置資料。關閉程式後再次開啟讀取之前的資料
    func test2() {
        //作為是否啟動過的標識
        let EVERLAUNCHED = "everLaunched"
        //作為是否首次啟動的標識名稱
        let FIRSTLAUNCHED = "firstLauch"
        //獲得變數的布林值 當程式首次啟動時,由於沒有設定 所以預設為否
        if (!UserDefaults.standard.bool(forKey: EVERLAUNCHED)) {
            //啟動後更改標識為真
            UserDefaults.standard.set(true, forKey: EVERLAUNCHED)
            UserDefaults.standard.set(true, forKey: FIRSTLAUNCHED)
            //呼叫同步方法立即儲存修改
            UserDefaults.standard.synchronize()
        }else{
            UserDefaults.standard.set(false, forKey: FIRSTLAUNCHED)
            UserDefaults.standard.synchronize()
        }
        var message = "It's the first show"
        if !UserDefaults.standard.bool(forKey: FIRSTLAUNCHED) {
            message = "it's not the first shwo"
        }
        print(message)
        
        
    }
    
    //退出系統前的事件處理
    func test1() {
        //獲得一個應用例項 , 控制程式執行期間的控制和協作 每個程式都有且僅有一個應用例項
        let app = UIApplication.shared
        //通知中心是基礎框架的子系統  在這裡 他向所有監聽程式退出事件的物件 廣播訊息
        NotificationCenter.default.addObserver(self, selector: #selector(ViewController.doSomething(_:)), name:.UIApplicationWillResignActive, object: app)
    }
    //響應程式退出事件 在程式退出時做必要的操作。比如說儲存使用者資料
    @objc func doSomething(_ sender:AnyObject){
        print("Saving data before exit.")
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}