问题标签 [key-value-coding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cocoa - 键值编码和方法调用
这是一个关于 Cocoa 良好编程技术的问题。
当你想在你的类的一个属性上调用一个方法时,你应该使用 KVC 来获取接收者还是只输入你的属性的名称?
例如,KVC:
示例,简单:
谢谢!
iphone - KVO 和 NSNotifications 的性能速度?
我应该害怕使用 Key-Value Observations (KVO) 和 NSNotifications 吗?我开始在我的应用程序中使用它们,但我对可能触发应用程序范围调用或自动执行某些操作的概念有点陌生,并且有点害怕这种开销可能带来的性能影响。
我的担心是没有根据的吗?我应该像任何其他方法调用一样使用它们吗?它们看起来非常方便并且填补了很多空白,所以如果可能的话,我想使用它们。注意:我主要为 iOS 设备编程,所以性能一直是我关心的问题。
objective-c - 键值编码原语
我有一些自动反序列化代码,将使用KVC设置对象的属性。我需要为原语(int、double、float)添加反序列化支持,但我无法(或不确定如何)将“ setValue: forKey: ”与原语一起使用。属性查找必须在运行时执行。有任何想法吗?谢谢。
objective-c - KVC 数组:getter 与索引访问器?
假如
实现集合访问器有什么好处?
怎么
[anOffice countOfEmployees]
比[[anOffice employees] count]
?绑定是否依赖于集合访问器,或者我可以完全放弃它们吗?因为我使用的是真正的数组对象,所以它们对我来说似乎是多余的。如果员工不是
NSMutableArray
并且没有实现类似计数方法本身的东西,我可以理解他们将如何被需要。我也完全被为什么会
mutableArrayValueForKey:@"employees"
用于获取员工财产而不是简单地难住valueForKey:@"employees"
。
谢谢!
objective-c - 创建一个包含具有相同接口的另一个对象的 Objective-C 对象 - KVC/KVO 问题
我需要在一个类层次结构中创建一个对象,该对象包装来自不同对象的对象。它们都有非常相似的接口,我想自动让我的包装器将它无法识别的消息转发给它的目标,而不是实现它自己的属性。我用这样的东西让它工作:
但这不适用于键值编码。如何让我的包装器以使用其包装对象的属性的方式实现键值编码?
objective-c - KVC 字符串转换不适用于 BOOL 值
嘿。我正在从文件中读取字符串,并尝试使用生成的字符串使用 KVC 方法在对象上设置 BOOL 属性-setValue:forKeyPath:
。但是,这有一个例外:-[NSCFString charValue]: unrecognized selector sent to instance 0x7fff711023b0
. 我猜这是因为 BOOL 是从 char 类型定义的。有没有解决的办法?谢谢!
core-data - 添加对象与 insertNewObjectForEntityForName 核心数据关系
你好,
虽然我在数据库开发方面有很多经验,但我很难在 Core Data 中概念化链接关系。据我了解,许多关系是一个附加到一个文件的 NSSet。阅读文档后,我已经理解了其中的一部分,并使其在下面代码的第一次导入中工作。
我有一个数据模型,我使用 XMLParser 在其中执行两个单独的导入。第一次导入从同一个导入中的同一个 XML 文件加载事件和类别,如下所示:
以上工作正常。第二个导入在应用程序的不同部分分别加载 EventLocations,因此我需要将其设置为与事件的一对一关系。这是我不太确定的地方。步骤应该是?
我不太确定步骤 B 和 C。任何帮助将不胜感激。谢谢。
cocoa - 汇总 UIView 子视图属性的 KVC 路径是什么?
我正在尝试计算 UIScrollView 中子视图的总高度:
但这会引发以下内容:
我尝试将@sum
操作员放置在该路径中的各个位置,结果都相同。
当然我可以用循环来做到这一点,但我对 KVC 解决方案特别好奇——我认为这是可能的,我只是做错了。什么是正确的路径?
iphone - 为什么在 iPhone 的 three20 中使用 TT_RELEASE_SAFELY?
为什么three20认为释放后将ivar分配给nil是安全的?省略该ivar = nil
步骤是否不安全?
这就是我发现的全部:http: //github.com/facebook/three20/commit/1b946f475fb28d60e0aafc9ef394050c642c3a5b#commitcomment-115517
我不认为我在使用 KVO/KVC,但我不太确定。我现在正在阅读它。
谢谢!
马特
objective-c - 观察 UITableViewController 的编辑属性
为什么我不能观察editing
一个实例的属性UITableViewController
?
我正在使用以下代码:
并实现了方法:
...但是observeValueForKeyPath
当这个值改变时,这个方法永远不会被调用。
根据 Apple 的确保 KVC 合规性部分:
对于属性或一对一关系的属性,这要求您的类:
- 实现一个名为
-<key>
,的方法-is<Key>
,或者有一个实例变量<key>
or_<key>
。- 如果属性是可变的,那么它也应该实现
-set<Key>:
.- 您对该
-set<Key>:
方法的实现不应执行验证。-validate<Key>:error:
如果验证适用于密钥,您的类应该实现。
该editing
属性的文档指出,它被定义为:
由于这个属性是不可变的,它必须符合的唯一要点是第一个(-is<Key>
例如,定义了一个方法)。通过查看属性的声明,您可以看到它确实符合这一点,并注意到isEditing
定义了一个方法。因此,它应该符合 Key Value Observing。它怎么不起作用?