1

我正在努力理解 iOS 的 MVC,并且我想确保我正在做的事情是合适的。

假设我有一个简单的类,其中包含 NSString* 的 NSMutableArray

@interface SimpleClass : NSObject

@property (nonatomic, strong) NSMutableArray *names;

@end

所以这是我的模型。是的?

假设我想编写一个按字母顺序对这些名称进行排序的方法。这个方法应该是模型中的方法,还是在数据控制器类中单独完成?对我来说,在模型中使用这种方法会更有意义。那么模型进行实际排序,而控制器是初始化排序的地方?

听起来对吗?

但是,由于视图需要对数据进行排序才能显示,这真的是模型的基本行为吗?

4

2 回答 2

0

如果我们想在 iOS 中应用 MVC,我们有 2 部分特别是模型和 viewContoller,这里的视图和控制器在 iOS 中结合,如果你愿意,你可以创建单独的视图和控制器。

现在在您的问题中,您使用 NSMutable 数组创建一个类,该类将是您的模型类。

现在您说要对数据进行排序,而不是在 iOS 视图中的 viewContoller 上执行此操作,并且控制器结合在一起,因此您可以对控制器部分中的数据进行操作并在视图上显示结果。

但是如果你想为显示操作创建单独的视图,你可以创建 UIView 并添加到视图控制器。

就像如果您创建处理 Web 服务的应用程序,那么您可以执行类似的操作

  1. 创建模型类,就像你完成的那样设置并获取(属性)数据表单服务器
  2. crate DAO(数据访问对象),用于管理所有 Web 服务调用并从服务器获取数据并将其设置为模型。

  3. 在 viewController(UIview 控制器)中对数据进行操作并在视图中显示或 3. 为显示数据创建单独的视图对视图控制器中的模型数据执行所有操作,并将模型数据设置为视图并将此视图添加到 viewcontroller。

希望这对您有所帮助,请参阅此链接 https://developer.apple.com/library/ios/documentation/general/conceptual/CocoaEncyclopedia/Model-View-Controller/Model-View-Controller.html

http://blog.teamtreehouse.com/ios-design-patterns-model-view-controller-part-3 这可能对您有更多帮助。

于 2013-08-29T11:16:58.893 回答
0

让我一一澄清你所有的疑惑

问题:假设我有一个简单的类,其中包含 NSString* 的 NSMutableArray

所以这是我的模型。是的?

答案:是的,它是模型类,因为它在世界上只服务于一个单一的目的,即“处理数据”

问题:假设我想编写一个按字母顺序对这些名称进行排序的方法。这个方法应该是模型中的方法,还是在数据控制器类中单独完成?对我来说,在模型中使用这种方法会更有意义。那么模型进行实际排序,而控制器是初始化排序的地方?

回答: 这种方法应该是可以考虑的,因为它只是根据您的需要对数据进行排序,将来有一天您可能需要以其他方式对这些数据进行排序。或者您可能还需要为其他一些设备开发此应用程序。并且由于其他一些要求,您可能需要以其他方式对其进行排序。如果您将在模型类或控制器类中执行此操作,那么您将代码限制为可扩展,因此它应该在视图类中。

控制器将实现所有业务逻辑。

我希望这有帮助

于 2013-08-29T10:35:32.857 回答