попробуйте сохранить настройки пользователя, но UserDefaults не работает, Xcode 12.3, swiftui 2.0, когда я перезагружаю свое приложение, мои настройки не обновляются для нового значения)
class PrayerTimeViewModel: ObservableObject {
@Published var lm = LocationManager()
@Published var method: CalculationMethod = .dubai {
didSet {
UserDefaults.standard.set(method.params, forKey: "method")
self.getPrayerTime()
}
}
func getPrayerTime() {
let cal = Calendar(identifier: Calendar.Identifier.gregorian)
let date = cal.dateComponents([.year, .month, .day], from: Date())
let coordinates = Coordinates(latitude: lm.location?.latitude ?? 0.0, longitude: lm.location?.longitude ?? 0.0)
var par = method.params
par.madhab = mashab
self.times = PrayerTimes(coordinates: coordinates, date: date, calculationParameters: par)
}
и просмотрите .. обновление с помощью AppStorage
struct MethodView: View {
@ObservedObject var model: PrayerTimeViewModel
@Environment(\.presentationMode) var presentationMode
@AppStorage("method", store: UserDefaults(suiteName: "method")) var method: CalculationMethod = .dubai
var body: some View {
List(CalculationMethod.allCases, id: \.self) { item in
Button(action: {
self.model.objectWillChange.send()
self.presentationMode.wrappedValue.dismiss()
self.model.method = item
method = item
}) {
HStack {
Text("\(item.rawValue)")
if model.method == item {
Image(systemName: "checkmark")
.foregroundColor(.black)
}
}
}
}
}
}
UserDefaults
? Вы также должны показать код дляCalculationMethod
- person Andrew   schedule 13.02.2021CalculationMethod
, что это? что такоеmethod.params
? Также похоже, что вы сохраняете и извлекаете из двух разныхUserDefaults
наборов (стандартный и метод). - person Andrew   schedule 13.02.2021