本來想隨便寫個判斷當(dāng)日方法而已队询,誰知道越寫越多派桩,后來干脆順便封裝了年月日時分秒的唯一性判斷,估計大家在項目有時候也會用到蚌斩,比較判斷APP是否今天已經(jīng)啟動铆惑,決定提示用戶什么或者彈出廣告之類。
實現(xiàn)原理也比較簡單,根據(jù)系統(tǒng)NSUserDefaults單例來存取時間數(shù)據(jù)來判斷
大家可以根據(jù)這個來擴展下员魏,判斷距離上次使用時長或者實現(xiàn)其他功能等丑蛤。
//
// Unique.swift
// 逗牛
//
// Created by mac on 16/8/24.
// Copyright ? 2016年 mac. All rights reserved.
//
import Foundation
enum Unique {
case year
case month
case day
case hour
case min
case seconds
var isOnly: Bool {
let defults = NSUserDefaults.standardUserDefaults()
guard let currUnique = defults.objectForKey(String(self)) as? String where currUnique == self.onlySnail else {
//不存在則創(chuàng)建 -> 存在則判斷 是否為今天 -> 否則 記錄今天
defults.setObject(self.onlySnail, forKey: String(self))
defults.synchronize()
return false
}
return true
}
private var onlySnail: String {
let now = NSDate() //獲取當(dāng)前時間
let dformatter = NSDateFormatter() //創(chuàng)建一個日期格式器
switch self {
case .year:
dformatter.dateFormat = "yyyy年"
case .month:
dformatter.dateFormat = "yyyy年MM月"
case day:
dformatter.dateFormat = "yyyy年MM月dd日"
case hour:
dformatter.dateFormat = "yyyy年MM月dd日 HH"
case min:
dformatter.dateFormat = "yyyy年MM月dd日 HH:mm"
case seconds:
dformatter.dateFormat = "yyyy年MM月dd日 HH:mm:ss"
}
return dformatter.stringFromDate(now)
}
}
使用:在需要使用的地方直接判斷即可
if Unique.year.isOnly == true {
print("別急,今年很快就過去了")
}
if Unique.month.isOnly == true {
print("這個月撕阎,你已經(jīng)不能在過去了")
}
if Unique.day.isOnly == true {
print("今天已經(jīng)領(lǐng)取了(⊙o⊙)哦")
}
if Unique.hour.isOnly == true {
print("這小時還沒有過去噢")
}
if Unique.min.isOnly == true {
print("這分鐘很快就過去了受裹,親")
}
if Unique.seconds.isOnly == true {
print("秒殺你的節(jié)奏")
}