Swift 4 中键值编码的优势

2024-04-10

我只是想知道 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 中,我们使用字符串作为键,如下所示,我们可以从中受益

 [object valueForKey:@"name"]

我的问题是,编码级别或内存级别有什么好处吗?


两个主要优点是:

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

  2. 结果是强类型的:通过以下内容,编译器将知道结果name is a String:

    let name = student[keyPath: nameKey]
    

    这消除了进行任何铸造的需要。

结果是编写安全代码变得更加容易。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift 4 中键值编码的优势 的相关文章

随机推荐