#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. Я бы рекомендовал вам использовать перечисление вместо строки для ключа