51 lines
2.1 KiB
Markdown
51 lines
2.1 KiB
Markdown
|
## Workaround for Xcode 13.3
|
||
|
|
||
|
When using `Defaults` with Xcode 13.3, the compiler may complain about `Type 'YourType' does not conform to protocol 'DefaultsSerializable'`.
|
||
|
|
||
|
[**This is a Swift bug.**](https://bugs.swift.org/projects/SR/issues/SR-15807)
|
||
|
|
||
|
Workaround:
|
||
|
|
||
|
1. Create a file named `Defaults+Workaround.swift` in the project using `Defaults`.
|
||
|
2. Copy the below code into `Defaults+Workaround.swift`.
|
||
|
|
||
|
```swift
|
||
|
import Foundation
|
||
|
import Defaults
|
||
|
|
||
|
extension Defaults.Serializable where Self: Codable {
|
||
|
public static var bridge: Defaults.TopLevelCodableBridge<Self> { Defaults.TopLevelCodableBridge() }
|
||
|
}
|
||
|
|
||
|
extension Defaults.Serializable where Self: Codable & NSSecureCoding {
|
||
|
public static var bridge: Defaults.CodableNSSecureCodingBridge<Self> { Defaults.CodableNSSecureCodingBridge() }
|
||
|
}
|
||
|
|
||
|
extension Defaults.Serializable where Self: Codable & NSSecureCoding & Defaults.PreferNSSecureCoding {
|
||
|
public static var bridge: Defaults.NSSecureCodingBridge<Self> { Defaults.NSSecureCodingBridge() }
|
||
|
}
|
||
|
|
||
|
extension Defaults.Serializable where Self: Codable & RawRepresentable {
|
||
|
public static var bridge: Defaults.RawRepresentableCodableBridge<Self> { Defaults.RawRepresentableCodableBridge() }
|
||
|
}
|
||
|
|
||
|
extension Defaults.Serializable where Self: Codable & RawRepresentable & Defaults.PreferRawRepresentable {
|
||
|
public static var bridge: Defaults.RawRepresentableBridge<Self> { Defaults.RawRepresentableBridge() }
|
||
|
}
|
||
|
|
||
|
extension Defaults.Serializable where Self: RawRepresentable {
|
||
|
public static var bridge: Defaults.RawRepresentableBridge<Self> { Defaults.RawRepresentableBridge() }
|
||
|
}
|
||
|
extension Defaults.Serializable where Self: NSSecureCoding {
|
||
|
public static var bridge: Defaults.NSSecureCodingBridge<Self> { Defaults.NSSecureCodingBridge() }
|
||
|
}
|
||
|
|
||
|
extension Defaults.CollectionSerializable where Element: Defaults.Serializable {
|
||
|
public static var bridge: Defaults.CollectionBridge<Self> { Defaults.CollectionBridge() }
|
||
|
}
|
||
|
|
||
|
extension Defaults.SetAlgebraSerializable where Element: Defaults.Serializable & Hashable {
|
||
|
public static var bridge: Defaults.SetAlgebraBridge<Self> { Defaults.SetAlgebraBridge() }
|
||
|
}
|
||
|
```
|