事象
@AppStorageで、Colorを保存しようとしたが、以下のエラーが表示された。
No exact matches in call to initializer
解決方法
Color+Extensionsというファイルを作成し(名前は任意)、以下のコードを貼りつける。
import SwiftUI
extension Color: RawRepresentable {
public init?(rawValue: String) {
guard let data = Data(base64Encoded: rawValue) else {
self = .black
return
}
do {
let color = try NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(data) as? UIColor ?? .black
self = Color(color)
} catch {
self = .black
}
}
public var rawValue: String {
do {
let data = try NSKeyedArchiver.archivedData(withRootObject: UIColor(self), requiringSecureCoding: false) as Data
return data.base64EncodedString()
} catch {
return ""
}
}
}
これでエラーが消えたかと思います。
参考文献

