Objective-C中的MVC和属性术语

时间:2009-12-03 02:52:15

标签: objective-c terminology

我认为术语有问题。 MVC的控制器部分是ViewController吗?或者它不是一回事。这是否将MVC的VC合并为一个文件?

.backgroundColor.size等属性与@property@synthesize相同,如果是这样,它与属性相同?在Objective-C中,属性和属性的含义是可互换的术语还是它们不同?例如.backgroundColor在某些Cocoa类中是否有@properties语法,或者这是错误的查看方式?

2 个答案:

答案 0 :(得分:4)

是。名称为“ViewController”的Objective-C类名称是Apple约定,表示根据Model-View-Controller范例,它是“Controller”部分的一部分。

  • 型号:您的数据类。
  • 查看:NSViewNSImageView
  • 控制器:NSViewController类。

    .backgroundColor和.size都是属性。

  • @property关键字是属性的声明关键字。
  • 实例化属性需要@synthesize关键字。

答案 1 :(得分:1)

你的NSViewController子类绝对是MVC中的控制器。它控制视图并将模型类中的数据推入其中。

关于内置Cocoa类的.backgroundColor和所有其他点符号属性,你也是正确的。它们使用@property@synthesize定义,就像您要编写的类一样。 但是,Cocoa中使用了更多简单的类(实际上,它们是结构体)(例如NSSizeNSRange)。当您使用点符号(例如range.length,假设rangeNSRange)访问这些字段时,他们没有使用@property@synthesize,因为他们实际上并不是Objective-C类,而是简单的C结构。

我个人在Objective-C中同时使用“属性”和“属性”,但其他开发人员可能不同意。