【问题标题】:How do I manage models & views in an iPhone app?如何在 iPhone 应用程序中管理模型和视图?
【发布时间】:2011-12-30 01:45:18
【问题描述】:

我有一堆继承自 NSObject(结果)的模型对象。而且我有一堆从 UIView (ResultView) 继承的视图对象。它们以 1:1 的关系存在(一个模型对应一个视图)。在我的控制器中,我有两个数组:一个用于 Result 对象,一个用于 ResultView 对象。控制器显示许多这些结果视图,并且可以添加/删除/重新排序。试图保持 2 个数组同步(结果和结果视图)是行不通的。我应该如何解决这个问题?

我正在考虑使用模型对象初始化视图对象(例如:我的 ResultView 类中的 initWithResult:,然后在 ResultView 中保留指向 Result 对象的指针)。然后我可以执行 ResultView.result 之类的操作来访问模型数据。有更好的解决方案吗?这会破坏 MVC,不是吗?

【问题讨论】:

    标签: iphone ios model-view-controller model uiviewcontroller


    【解决方案1】:

    除非您尝试将这些模型对象保存在数据库或类似的东西中,否则我会在模型对象上放置一个视图属性。如果您出于任何原因不必创建视图,那么只需将其设为 nil 以节省内存。

    它会破坏 MVC 吗?我猜。但是如果你的模型对象总是有一个与之关联的视图,它就会开始进入模糊线区域。没有编程之神会因为你稍微违反标准而将你送入地狱。

    在查看您的代码时,做其他程序员最容易理解的简洁、最佳和最容易理解的事情。

    【讨论】:

      【解决方案2】:

      好的,如果我正确理解您的问题,模型对象是持久的,而视图是动态创建/删除的。您隐式依赖两个数组的索引来实现两个部分的映射。一种简单的方法是在视图类中添加“模型对象 ID”。然后您可以轻松地在视图中引用正确的模型对象。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-20
        • 1970-01-01
        • 1970-01-01
        • 2018-07-25
        • 2020-08-28
        • 2023-03-03
        相关资源
        最近更新 更多