Skip to content

Instantly share code, notes, and snippets.

@tonnylitao
Last active July 2, 2020 10:10
Show Gist options
  • Save tonnylitao/b1c2f05753605b908cc2d725be685067 to your computer and use it in GitHub Desktop.
Save tonnylitao/b1c2f05753605b908cc2d725be685067 to your computer and use it in GitHub Desktop.
data flow to view mode with keypath
let mapping = [\User.name: nameField,
\User.email: emailField,
\User.likeKiwi: likeKiwiSwitcher,
\User.travel: travelBtn,
\User.hiking: hikingBtn,
\User.reading: readingBtn]
func update(_ keypath: PartialKeyPath<User>, _ value: Any) {
model[keyPath: keypath] = value
mapping[keypath].value = value
}
...
update(\User.name, "Tonny")
update(\User.email, "test@gmail.com")
update(\User.likeKiwi, true)
update(\User.travel, false)
update(\User.hiking, true)
update(\User.reading, true)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment