首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用#keyPath而不是直接将key作为字符串传递有什么用?

使用#keyPath而不是直接将key作为字符串传递有什么用?
EN

Stack Overflow用户
提问于 2019-05-15 03:12:34
回答 1查看 186关注 0票数 0

这两种格式之间有什么有用的区别:

代码语言:javascript
复制
request.sortDescriptors = [NSSortDescriptor(key:"dateCreated", ascending: false)]

代码语言:javascript
复制
request.sortDescriptors = [NSSortDescriptor(key: #keyPath(Note.dateCreated), ascending: false)]

在第二种格式中,#keyPath让我感到困惑。它到底是什么,我可以在哪里读到更多关于它的信息?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-15 03:20:16

两者之间没有区别

代码语言:javascript
复制
key:"dateCreated"

代码语言:javascript
复制
key: #keyPath(Note.dateCreated)

两者都将使用Note对象的dateCreated属性进行排序,后者的优点是避免了硬编码问题。x编写datCreated而不是dateCreated将抛出编译时错误,因此它将安全地避免在相同情况下肯定会发生的运行时崩溃

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56137088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档