2016年9月21日 星期三

判斷APP是否第一次開起(Swfit)

當我們要判斷用戶是否第一次開起APP時必須在APPDelegate的didFinishLauchingWithOptions下存取兩組BOOL進去userDefaults
再利用存進去的userDefaults做判斷
第一次啟動為true
之後將第二個BOOL變為false


  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        
判斷當"abcd"如果是false或是空時做什麼動作,如果不是空就跳到else也就是非第一次開起

        if(!UserDefaults.standard.bool(forKey: "abcd")){
            UserDefaults.standard.set(true, forKey: "abcd")
            UserDefaults.standard.set(true, forKey: "first")
            print("first")
        }else{
            UserDefaults.standard.set(false, forKey: "first")
            print("unfirst")
        }
        
        
        
        return true

    }

簡單的做個lable來測試是否有判斷成功(也可使用alert)
 override func viewDidLoad() {
        super.viewDidLoad()
    
        if (UserDefaults.standard.bool(forKey: "first")){

           let lable = UILabel(frame: CGRect(x: 50, y: 200, width: 200, height: 36))
            lable.text = "第一次開起"
            lable.backgroundColor = UIColor.red
            lable.textColor = UIColor.yellow
            self.view.addSubview(lable)
        }else{

            let lable = UILabel(frame: CGRect(x: 50, y: 200, width: 200, height: 36))
            lable.text = "非第一次開起"
            lable.backgroundColor = UIColor.blue
            lable.textColor = UIColor.white
            self.view.addSubview(lable)
        }
    }

下圖為測試結果


沒有留言:

張貼留言