weareopensource/Swift

View on GitHub
waosSwift/lib/helpers/Extensions/UserDefaults.swift

Summary

Maintainability
A
0 mins
Test Coverage
/**
 * Dependencies
 */

import UIKit

/**
* Extension
*/

extension UserDefaults {

    subscript<T>(key: String) -> T? {
        get {
            return value(forKey: key) as? T
        }
        set {
            set(newValue, forKey: key)
        }
    }

    subscript<T: RawRepresentable>(key: String) -> T? {
        get {
            if let rawValue = value(forKey: key) as? T.RawValue {
                return T(rawValue: rawValue)
            }
            return nil
        }
        set {
            set(newValue?.rawValue, forKey: key)
        }
    }

    func contains(_ key: String) -> Bool {
        return UserDefaults.standard.object(forKey: key) != nil
    }

}