我如何管理模型&;iPhone应用程序中的视图?

我如何管理模型&;iPhone应用程序中的视图?,iphone,ios,model-view-controller,model,uiviewcontroller,Iphone,Ios,Model View Controller,Model,Uiviewcontroller,我有一堆从NSObject(Result)继承的模型对象。我有一堆从UIView(ResultView)继承的视图对象。它们以1:1的关系存在(一个模型对应一个视图)。在我的控制器中有两个数组:一个用于结果对象,另一个用于结果视图对象。控制器显示许多这样的结果视图,可以添加/删除/重新排序。试图使两个数组保持同步(结果和结果视图)不起作用。我应该如何处理这个问题 我正在考虑用模型对象初始化视图对象(例如:在我的ResultView类中的initWithResult:并在ResultView中保留

我有一堆从NSObject(Result)继承的模型对象。我有一堆从UIView(ResultView)继承的视图对象。它们以1:1的关系存在(一个模型对应一个视图)。在我的控制器中有两个数组:一个用于结果对象,另一个用于结果视图对象。控制器显示许多这样的结果视图,可以添加/删除/重新排序。试图使两个数组保持同步(结果和结果视图)不起作用。我应该如何处理这个问题


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

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

除非您试图将这些模型对象持久化到数据库或类似的东西中,否则我会在模型对象上放置视图属性。如果您不必出于任何原因创建视图,那么只需将其置零即可节省内存

它会打破MVC吗?我想是吧。但是,如果模型对象始终具有与其关联的视图,则它将开始进入模糊线区域。没有编程上帝会因为你有点违反标准而送你下地狱

在查看您的代码时,请执行其他程序员能够理解的干净、最佳和最容易的操作