#swift #swiftui #xcode13
Вопрос:
У меня есть эта структура, которую я использую для своих уведомлений, я пытаюсь преобразовать заголовок свойства в LocalizedStringKey, однако я получаю предупреждение «Тип», которое не соответствует ошибке «Хэшируемый протокол».
public struct Alert: Hashable {
// MARK: - properties
public let title: String
public let registryID: UUID
public let dateComponents: DateComponents
public let sound: String?
public let repeats: Bool
// MARK: - Init amp; Dealloc
public init(title: String,
registryID: UUID,
dateComponents: DateComponents,
timezone: TimeZone? = nil,
sound: String? = nil,
repeats: Bool = false) {
self.title = title
self.registryID = registryID
self.dateComponents = dateComponents
self.sound = sound
self.repeats = repeats
}
}
Вот как я определяю пользовательское действие
let alertScheduler = UNUserNotificationCenter.current()
// Define the custom actions
let doneAction = UNNotificationAction(identifier: "DONE_ACTION",
title: "Done",
options: [])
// Define the notification type
let actionCategory = UNNotificationCategory(identifier: "DONE_ACTION_NOTIFIER",
actions: [doneAction],
intentIdentifiers: [],
hiddenPreviewsBodyPlaceholder: "",
options: .customDismissAction)
alertScheduler.setNotificationCategories([actionCategory])
Поскольку я не смог найти практически никакой информации об этом, когда я определял пользовательское действие, я изменил заголовок следующим образом:
let doneAction = UNNotificationAction(identifier: "DONE_ACTION",
title: LocalizedStringKey("Done"),
options: [])
Что дает мне ошибку»Не удается преобразовать значение типа «LocalizedStringKey» в ожидаемый тип аргумента «Строка»»
Могу ли я как-нибудь это сделать? В видео WWDC21 о LocalizedStringKeys они локализуют переменную, let title: LocalizedStringKey
и это сделано, но протокол хэширования, похоже, вызывает некоторые проблемы.
Комментарии:
1. Я не думаю, что уведомления пользователей поддерживают
LocalizedStringKey
. Вероятно, вам следует использоватьNSLocalisedString
для создания локализованной строки.