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 (
//
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)