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”。