SwiftyUserDefaults icon indicating copy to clipboard operation
SwiftyUserDefaults copied to clipboard

Custom Types and Bridges

Open khuffie opened this issue 5 years ago • 1 comments

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
}

khuffie avatar Sep 28 '20 15:09 khuffie

@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
	
}

sunshinejr avatar Oct 01 '20 12:10 sunshinejr