Storing a variable when the app is first installed

后端 未结 2 1977
天涯浪人
天涯浪人 2021-01-17 01:34

Attempting to store the variable DateInstalled when the app is first installed, but each time the app loads this variable is overridden by the new date.

<
相关标签:
2条回答
  • 2021-01-17 02:08

    Hey @Curtis Cowan try with this

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    
                let firstLaunch = NSUserDefaults.standardUserDefaults().boolForKey("FirstLaunchTime")
                if firstLaunch  {
                   println("Not First launch")
                }
                else {
                    println("First launch")
                    NSUserDefaults.standardUserDefaults().setObject(NSDate(), forKey:"FirstLaunchTime")
                     }
    
                return true
          }
    
    0 讨论(0)
  • 2021-01-17 02:17

    first make your date optional:

    var installedDate: NSDate? {
        get {
            return NSUserDefaults().objectForKey("installedDateKey") as? NSDate
        }
        set {
            NSUserDefaults().setObject(newValue, forKey: "installedDateKey")
        }
    }
    

    and inside your viewDidLoad method add a conditional to only save its value if it stills nil:

    override func viewDidLoad() {
        super.viewDidLoad()
        if installedDate == nil {
            installedDate = NSDate()
            print("First run")
        } else { 
            print("Not first run")
            print(installedDate!)
        }
    }
    

    Xcode 8 • Swift 3

    var installedDate: Date? {
        get {
            return UserDefaults.standard.object(forKey: "installedDateKey") as? Date
        }
        set {
            UserDefaults.standard.set(newValue, forKey: "installedDateKey")
        }
    }
    
    0 讨论(0)
提交回复
热议问题