跳转到内容

WebObjects/概述/键值编码

来自维基教科书,开放的书籍,面向开放的世界

本维基教科书的内容已过时,现已移至http://wiki.objectstyle.org/confluence/display/WO/Home

如果您熟悉OGNL,那么键值编码有点像它。在本文中,我们将键值编码称为 KVC,以简化。KVC 也存在于 MacOS-X 附带的 Cocoa 基础设施以及 OPENSTEP 基础设施中。本文将重点介绍 WebObjects 和 java 环境下的 KVC。

概念方面

[编辑 | 编辑源代码]

考虑以下模型片段;

此模型显示了许多实体,实体之间的线表示关系。例如,组织实体与名为“workerAccount”的工人存在一对一关系,并且与名为“orgRegions”的“OrgRegion”存在一对多关系。

这里的“实例”指的是特定的组织。例如,“玉米面公司”和“Aqua Breweries”可能是组织实体的实例。

组织的实例可以为“address”、“countryIso”、“email”等键提供值,并且它们将返回键的值。它本质上就像 NSDictionary 或 Map 对象一样。这是从对象中提取数据的方式。

设置键值

[编辑 | 编辑源代码]

这是实体的实例被要求为键“接受”一些值的地方。例如,组织的实例可能会被告知为键“email”接受值“[email protected]”。这是使用 KVC 将数据加载到对象中的方式。

键路径值

[编辑 | 编辑源代码]

使用点路径,可以遍历关系以访问其他实体中的数据。例如,如果您有“OrgExpertise”的实例,则可以获取键路径“organisation.workerAccount.name”的值。这是从互连的网络对象实例中提取数据的方式。

设置键路径值

[编辑 | 编辑源代码]

使用点路径,可以获取互连的网络对象实例中的对象以“接受”一些数据。例如,如果您有“OrgExpertise”的实例,那么可以获取该对象以将“Joe Smith”的值“接受”到键路径“organisation.workerAccount.name”。

华夏公益教科书