是否将NSString和类似内容排除在MVC之外?

时间:2014-08-23 10:59:22

标签: objective-c model-view-controller nsstring

在MVC中,每个类都应属于ViewModelControllerViewModel不应该彼此了解。因此,这很糟糕:

@interface Person : NSObject    // Clearly a model class

@property (nonatomic) NSString *name;
@property (nonatomic) NSUInteger age;

@end


@interface PersonInfoView : NSView    // Clearly a view class

@property (nonatomic) Person *personToDisplay;

@end

相反,您可以从控制器配置PersonInfoView。所以你可能会有这个PersonInfoView类:

@interface PersonInfoView : NSView

@property (nonatomic) NSString *nameToDisplay;
@property (nonatomic) NSUInteger ageToDisplay;

@end

但是如你所见,NSString同时属于模型和视图类!唯一的解释是NSString是一个控制者,但这根本没有意义。

我的想法是,可能NSString(以及类似的类)被排除,因为它们几乎充当了原始的C类型?

1 个答案:

答案 0 :(得分:2)

不要求所有类都是视图,模型或控制器。事实上大多数都不是。

MVC的重点是模型如何通过控制器与视图交互。

BTW,除了苹果公司选择的版本之外,还有MVC版本。