这两种格式之间的有用区别是什么:
request.sortDescriptors = [NSSortDescriptor(key:"dateCreated", ascending: false)]
和
request.sortDescriptors = [NSSortDescriptor(key: #keyPath(Note.dateCreated), ascending: false)]
在第二种格式中 #keyPath 让我感到困惑。它到底是什么,在哪里可以阅读更多关于它的信息?
两者之间没有区别
key:"dateCreated"
和
key: #keyPath(Note.dateCreated)
两者都将使用对象的dateCreated
属性进行排序Note
后者的优点是避免了硬编码问题,例如编写datCreated
而不是dateCreated
会抛出编译时错误,因此可以安全地避免在相同情况下前者肯定会发生的运行时崩溃
https://www.klundberg.com/blog/swift-4-keypaths-and-you/
http://chris.eidhof.nl/post/sort-descriptors-in-swift/