0

我想使用 AppStorage 属性包装器将 CLAuthorizationStatus 存储在用户默认值中,这样我就可以在整个应用程序中将它作为一个简单的变量进行访问,而不是每次都通过 CLLocationManager 访问授权状态。问题是这个 Enum rawValue 类型是一个 Int32(而不是像 UNAuthorizationStatus 那样的 Int),所以下面的方法不起作用:

@AppStorage("locationSettings") var locationSettings: CLAuthorizationStatus = CLAuthorizationStatus.notDetermined 

抛出:候选人要求类型“CLAuthorizationStatus.RawValue”(又名“Int32”)和“Int”是等效的(要求指定为“Value.RawValue”==“Int”)(SwiftUI.AppStorage)

我尝试扩展 AppStorage 以包含一个带有 RawRepresentable 的初始化程序,该初始化程序具有 Int32 作为 rawValue 但我找不到要包含在其中的内容以使其工作。

extension AppStorage {
    init(wrappedValue: Value, _ key: String, store: UserDefaults? = nil) where Value : RawRepresentable, Value.RawValue == Int32 {
    }
}

提前致谢。

4

0 回答 0