Store [String] in NSUserDefaults

前端 未结 5 1090
南方客
南方客 2020-11-27 17:35

I want to save a Swift Style String Array into NSUserDefaults, but acutally the \"if\" statement in the code says that returnValue is always nil.

Later in the code (

5条回答
  •  挽巷
    挽巷 (楼主)
    2020-11-27 18:25

    //

        class func saveCustomObject(_ object: AnyObject?, key: String) { 
          let encodedObject = NSKeyedArchiver.archivedData(withRootObject: object!) 
          let userDefaults = UserDefaults.standard userDefaults.set(encodedObject, forKey: key) 
          userDefaults.synchronize() 
        } 
    

    //

    class func loadCustomObject(_ key: String) -> AnyObject? { 
       let userDefaults = UserDefaults.standard 
       if let userDefaultKey = userDefaults.object(forKey: key) { 
         let encodedObject = userDefaultKey as! NSData 
         return NSKeyedUnarchiver.unarchiveObject(with: encodedObject as Data)! as AnyObject? 
       } else {
         return nil 
       }
    } 
    

    //

    class func removeCustomObject(_ key: String) { // 
        let encodedObject = NSKeyedArchiver.archivedDataWithRootObject(object!) let userDefaults = 
        UserDefaults.standard userDefaults.removeObject(forKey: key) 
        userDefaults.synchronize()
     }
    

    call Method

    let aParams : [String : String] = [ "DeviceType" : "iOS", ]
    CommonMethods.saveCustomObject(aParams as AnyObject?, key:Constants.kLoginData)
    

提交回复
热议问题