Какая польза от #keyPath вместо прямой передачи ключа в виде строки? - PullRequest
0 голосов
/ 14 мая 2019

В чем полезная разница между этими двумя форматами:

request.sortDescriptors = [NSSortDescriptor(key:"dateCreated", ascending: false)]

и

request.sortDescriptors = [NSSortDescriptor(key: #keyPath(Note.dateCreated), ascending: false)]

Во втором формате #keyPath меня смущает. Что именно и где я могу прочитать об этом подробнее?

1 Ответ

2 голосов
/ 14 мая 2019

Нет разницы между

key:"dateCreated"

и

key: #keyPath(Note.dateCreated)

, оба будут выполнять сортировку со свойством Note объекта dateCreated, последнее имеет преимущество в том, что избегает жесткого кодированияпроблемы при записи datCreated вместо dateCreated приведут к ошибке времени компиляции, поэтому он безопасно избежит сбоев во время выполнения, которые определенно произойдут с первым при тех же обстоятельствах

https://www.klundberg.com/blog/swift-4-keypaths-and-you/

http://chris.eidhof.nl/post/sort-descriptors-in-swift/

...