//
// 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.
}
}