У меня очень простая настройка, которую я делаю в процессе обучения, но я не могу понять, как передать свойство struct в функцию, где свойство struct - это просто строка. Я знаю, что могу заставить func принимать строку в аргументах, но я хочу, чтобы она была обязательной опцией из моей структуры.
Сначала я покажу код, который у меня есть сейчас, а затем, как я думаю, я хочу, чтобы он работал ...
class ViewController: UIViewController {
struct Notification {
struct Category {
static let achievement = "achievement"
static let reminder = "reminder"
}
struct Action {
static let readLater = "readtLater"
static let showDetails = "showDetails"
static let cancel = "cancel"
}
}
private func scheduleNotification(_ delay: Int, type: Notification.Category, title: String, message: String) {
//setup notification here
}
Проблема в том, что когда я пытаюсь вызвать его с определенным типом, например ...
scheduleNotification(10, .achievement, "Test", "Test message")
Это дает мне ошибку, говоря ..
Член 'достижение' в 'ViewController.Notification.Category'
выдает результат типа String, но контекст ожидает
'ViewController.Notification.Category'
Можно ли заставить этот тип параметра String быть допустимым параметром в структуре Notification.Category?
Я видел другие функции, в которых вы можете передать [. Что-то] в качестве параметра, поэтому я думаю, что это так, но я понятия не имею, как это сделать. Я не хочу просто использовать String в качестве аргумента, потому что тогда это может быть буквально что угодно, я хочу, чтобы это был допустимый параметр в структуре