gpt4 book ai didi

swift - CKRecord 设置值 :forKey or setObject:forKey

转载 作者:行者123 更新时间:2023-11-28 12:47:17 24 4
gpt4 key购买 nike

Swift 中的 CKRecord 类规范说明使用 setObject:forKey: 来设置 CKRecord 的值。但是我看到了很多带有 setValue:forKey: 的代码示例,它是 NSValueCoding 协议(protocol)的一部分。那么有人可以解释一下两者之间的优势是什么吗?

最佳答案

不幸的是,setValue: 非常经常被误用。

简单规则:

为键/值集合类型中的键设置对象的指定方法是setObject:或键订阅。

setValue:是一种具有特殊含义的key-value编码方式。例如,您可以用一行同时设置数组中所有字典(或自定义对象)的相同属性。 setValue: 也可用于通过文字键而不是使用适当的 setter 来设置自定义类中的属性。

例如语法

object.name = "foo"

object.setValue("foo", forKey:"name")

基本相同。

使用 setValue: 的一个异常(exception)是 NSManagedObject,因为这个类严重依赖键值编码。

编辑:

总结(直接引用rmaddy的精彩评论,谢谢):

仅当您明确需要使用键值编码时才使用 setValue:forKey:

关于swift - CKRecord 设置值 :forKey or setObject:forKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37643743/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com