sunshinejr / SwiftyUserDefaults

Modern Swift API for NSUserDefaults
http://radex.io/swift/nsuserdefaults/static
MIT License
4.84k stars 364 forks source link

Custom Types and Bridges #259

Open khuffie opened 3 years ago

khuffie commented 3 years ago

I'm trying to create a simple struct with some setting values:

public struct WeatherSettings: DefaultsSerializable {

    static var _defaults: DefaultsBridge<WeatherSettings> { DefaultsKeyedArchiverBridge() }
    static var _defaultsArray: DefaultsBridge<[WeatherSettings]> { DefaultsKeyedArchiverBridge() }

    let enabled:String
    let location:String
    let isCelsius:Bool

}

However, I keep getting this error: "Cannot specialize non-generic type 'DefaultsBridge'"

I tried using this code from the documentation and I'm getting the same error:

struct FrogCustomSerializable: DefaultsSerializable {

    static var _defaults: DefaultsBridge<FrogCustomSerializable> { DefaultsKeyedArchiverBridge() }
    static var _defaultsArray: DefaultsBridge<[FrogCustomSerializable]> { DefaultsKeyedArchiverBridge() }

    let name: String
}
sunshinejr commented 3 years ago

@khuffie sorry, this paragraph in the Readme wasn't updated properly... I just created a PR with a fix for that. In the meantime, try that:

public struct WeatherSettings: DefaultsSerializable {
    static var _defaults: DefaultsKeyedArchiverBridge { DefaultsKeyedArchiverBridge() }
    static var _defaultsArray: DefaultsKeyedArchiverBridge { DefaultsKeyedArchiverBridge() }

    let enabled:String
    let location:String
    let isCelsius:Bool

}