如何编写需要将属性表示为集合以及属性的数据模型

时间:2017-07-18 06:26:46

标签: swift

让我们假设你有一个数据模型Car。汽车有许多属性,如轮子,引擎,窗户等。 假设您想在零件清单中表示这些属性,您将如何将其构建到模型中? 挑战在于,属性应该通过列表项以及属性本身可读和设置。

有点像

car.engine = Engine()

应该具有与以下相同的效果:

car.parts["engine"] = Engine()

虽然在我看来使用字符串键不是正确的解决方案。

1 个答案:

答案 0 :(得分:1)

为此,您可以使用Generic

1)首先设计一个Generic protocol

2)为车轮,引擎和车窗制作单独的模型,每个模型必须符合您在步骤1中制作的Protocol

3)然后在Car模型中,将部件列表设为:

假设您创建了一个名为Parts的协议,并且具有名为Wheel,Engine and Window的单独模型。

let carParts:[Parts] = [Wheel(),Engine(),Window()]

要单独设置属性,您可以遍历集合并检查要直接为其设置属性的模型。