Я пытаюсь разрешить пользователю выбирать способ форматирования своей даты для пользовательской клавиатуры. Итак, с одной точки зрения, у меня есть:
var userCustomDateArrayForSaving = []
var defaultsUser = UserDefaults(suiteName: "group.prefsettings.myapp")
и набор кнопок с тегами следующим образом: кнопки с тегами
Когда кнопки нажимаются, их тег добавляется к переменной userCustomDateArrayForSaving
, и когда пользователь нажимает «сохранить»:
defaultsUser?.setValue(userCustomDateArrayForSaving, forKey: "dateSettings")
defaultsUser?.synchronize()
Итак, в итоге это может быть равно [0, 53,52,10,52,22]
Тогда, с другой стороны, мне нужно сделать:
var dateStampDefaults = UserDefaults(suiteName: "group.prefsettings.myapp")!.array(forKey: "dateSettings") as? [Int] ?? [Int]()
и когда нажата кнопка даты, я пытался заставить цикл for повторять этот массив и «декодировать» его следующим образом:
@objc func myStampsDatePressed(sender: UIButton!) {
//
let date = Date()
let calendar = Calendar.current
let proxy = textDocumentProxy as UITextDocumentProxy
let formatter = DateFormatter()
var localTranslatedDateString = " "
for dateMacro in dateStampDefaults {
switch dateMacro {
case 0:
return localTranslatedDateString.append(contentsOf: (formatter.weekdaySymbols[calendar.component(.weekday, from: date)]))
case 1:
return localTranslatedDateString.append(contentsOf: (formatter.shortWeekdaySymbols[calendar.component(.weekday, from: date)]))
case 2:
return localTranslatedDateString.append(contentsOf: (formatter.veryShortWeekdaySymbols[calendar.component(.weekday, from: date)]))
case 10:
return localTranslatedDateString.append(contentsOf: (formatter.monthSymbols[calendar.component(.month, from: date)]))
case 11:
return localTranslatedDateString.append(contentsOf: (formatter.shortMonthSymbols[calendar.component(.month, from: date)]))
case 12:
return localTranslatedDateString.append(contentsOf: (formatter.veryShortMonthSymbols[calendar.component(.month, from: date)]))
...(etc)
}
let str = formatter.string(from: Date())
myStampLengthForDelete = str
proxy.insertText(localTranslatedDateString)
}
... чтобы кто-то мог указать, например, свою дату «понедельник, 1 декабря».
Может кто-нибудь дать совет? Спасибо!