Swift 4中键值编码的优势
我只想知道Swift 4中键值编码的好处。因为我非常了解键值编码(保留对属性的引用,而不实际访问属性所保留的基础数据) 例如:Swift 4中键值编码的优势,swift,swift4,Swift,Swift4,我只想知道Swift 4中键值编码的好处。因为我非常了解键值编码(保留对属性的引用,而不实际访问属性所保留的基础数据) 例如: struct Student { var name: String? var rollNo: String? } let student = Student(name: "aman", rollNo: "12121") let nameKey = \Student.name let name = student[keyPath: nameKey] 在
struct Student {
var name: String?
var rollNo: String?
}
let student = Student(name: "aman", rollNo: "12121")
let nameKey = \Student.name
let name = student[keyPath: nameKey]
在这里,我们创建了Student的实例,并通过下标(keyPath)访问该值,但我可以通过编写代码Student.name
轻松访问该值
在Objective-C中,我们使用字符串作为键,如下所示,我们可以从中获得一些好处
[object valueForKey:@"name"]
我的问题是,编码级别或内存级别有什么好处吗?两个关键优势是:
名称
是一个字符串
:
let name = student[keyPath: nameKey]
这样就无需进行任何铸造结果是,编写安全代码要容易得多 请看一看Swift 4中键值编码更改/改进背后的动机。与其使用简单的字符串文字引用对象键,不如使用键路径强制执行编译时检查,以确保类型包含所需的键,从而消除常见类型的运行时错误。请阅读