Есть ли лучший способ установить все свойства struct в nil, чем вручную, задав все свойства nil?Swift 3: Как установить все свойства struct в nil
Если у меня есть Привет-структура
struct Hello {
var salutation: String?
var name: String?
}
let hello = Hello(salutation: "Mr.", name: "James")
В настоящее время я делаю это, чтобы сбросить значение:
func removeAll() {
salutation = nil
name = nil
}
Я вроде найти лучший способ, особенно когда структура является большой.
Я вижу некоторые рекомендации, чтобы использовать зеркало, но я получил сообщение об ошибке «Не удается присвоить свойству:„$ 0“неизменна»
func removeAll() {
let mirror = Mirror(reflecting: self)
let properties = mirror.children.flatMap { $0.value = nil }
}
Спасибо за помощь!
Привет Мэтт, на детской площадке, это хорошо, но в Xcode, я получил предупреждение: 'Значение факультативных Тип Привет? не разворачивается; вы хотели использовать! или? ' Можно ли использовать '!' Вот? Я добавил мутирующую функцию так же, как ваш пример. – Vina
Я не знаю, как выглядит ваш код «внутри Xcode». Уверяю вас, что ничего не сказано о том, что я сказал, что приведет к «необязательному типу' Hello? », Поэтому это должно быть какое-то осложнение, которое вы сами добавили. – matt
Извините, только что поняли, у меня есть функция init?() ... – Vina