Как сделать переменную AppStorage доступной только при запуске на iOS 14?

#swift #swiftui #widget #uikit #ios14

#swift #swiftui #виджет #uikit #ios14

Вопрос:

Я схожу с ума, я хочу использовать AppStorage, доступный только в iOS 14 (чтобы использовать его в виджетах)! Но я получаю сообщение об ошибке:

Оболочки свойств пока не поддерживаются в локальных свойствах

Я хочу интегрировать виджет в свое приложение UIKit, будут ли доступны оболочки свойств в будущем?

На данный момент я использую мой неприятный обходной путь, я делаю доступным весь ViewController @ (iOS 14.0, *), но, как вы уже догадались, теперь он работает только на iOS 14!

 @AppStorage("incomeTotal", store: UserDefaults(suiteName: "group.de.davidkoenig.SimpleMoney"))
var incomeTotal: String = "0.0"
  

Выше вы видите мой код для AppStorage.

Может быть, вы сможете мне помочь!?

Комментарии:

1. Если в вашем проекте установлена поддержка iOS ниже 14, вам придется использовать группы приложений для управления этим или разместить множество @available в вашем проекте.

2. Я использую группы приложений, но как использовать AppStorage в UIKit и swift file, потому что виджету нужен AppStorage. может быть, вы знаете, как настроить группы приложений (userdefaults) в UIKit?

Ответ №1:

Я нашел способ обезопасить объект в UIKit:

 UserDefaults(suiteName: "group.de.davidkoenig.SimpleMoney")!.set(String(format: "%.2f", sumBalance), forKey: "balanceTotal")
  

Это работает, и в моем файле SwiftUI я использую код из моего вопроса!

Комментарии:

1. Я бы рекомендовал вам использовать перечисление вместо строки для ключа