我有一个非常简单的 MVC 设计问题。
我有一个带有一堆属性的类,以及一个展示该类实例的表单。一些类属性是数组——一些是要在一维表视图中呈现的 NSString 数组,有些是要在二维表视图中呈现的子对象数组(每个子对象属性一列)。我实际上不想对任何这些表中的数据做任何事情 - 只是在可滚动的只读表视图中显示内容。
在我第一次尝试绑定时,我添加了一个绑定到类实例的对象控制器。然后,我尝试将每个表视图的每一列绑定到类的“选择”成员,模型键路径指定实例的数组属性(对于二维表,子的成员目的)。我很惊讶这不适用于一维表的列。
接下来,我为每个表添加了一个数组控制器,将其绑定到对象控制器的“选择”成员。对于一维表,我将列绑定到没有模型键路径的数组控制器;对于二维表,我使用指定子对象属性的模型键路径将列绑定到数组控制器。这行得通——但是对于一个有七个表的窗口,我有七个阵列控制器!这感觉有点矫枉过正,因为这些表除了呈现数据之外没有做任何事情。
我的问题很简单:我的设计是否符合良好的 MVC 实践——我真的需要所有这些阵列控制器吗?或者是否有更简单的方法来指定我的绑定(对于一维和/或二维表),这将使我能够消除一些数组控制器?当我在一个对象中有一个字符串数组要显示在一个单列表中时,使用绑定到对象和表的数组控制器感觉有点矫枉过正。
作为一个辅助问题——我真的需要担心过多的阵列控制器吗?它们是我应该自由使用的轻量级对象,还是我应该保存的资源密集型对象,尤其是在像 iOS 这样的有限资源环境中?