Один из способов сделать это - перейти на AlertRow<GTDItemEntity?>
:
<<< AlertRow<GTDItemEntity>() {
$0.title = "Project"
$0.value = self.item?.project
$0.displayValueFor = { project in
return project??.text ?? "No Project" // *
}
$0.options = [nil] // sample one option with nil value
$0.onChange() {
self.item.project = $0.value ?? nil // *
}
}
Обратите внимание, что это делает $0.value
двойным необязательным, поэтому я изменил некоторый код в строках, отмеченных *
.
Еще один способ сделать это - добавить специальный GTDItemEntity
в качестве одного из параметров.Вы бы присвоили значение определенному полю этого специального GTDItemEntity
так, чтобы никакое другое GTDItemEntity
не имело этого значения.Затем вы можете проверить, изменилось ли значение строки на этот специальный объект в onChange
.Если это так, установите значение nil.