Swift 4中键值编码的优点

时间:2017-09-04 14:19:57

标签: 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]

这里我们创建了Student的实例并通过下标(keyPath)访问了值,但我只需编写代码student.name就可以轻松访问该值。

在Objective-C中,我们使用字符串作为下面给出的键,我们可以从中获益[/ p>]

 [object valueForKey:@"name"]

我的问题是,编码级别或内存级别是否有任何好处?

1 个答案:

答案 0 :(得分:3)

两个主要优点是:

  1. 密钥已验证::如果您尝试使用无效的密钥,Xcode会在编译时警告您。

  2. 结果是强类型的:使用以下内容,编译器将知道结果nameString

    let name = student[keyPath: nameKey]
    

    这消除了进行任何强制转换的必要。

结果是编写安全代码要容易得多。