我认为术语有问题。 MVC的控制器部分是ViewController
吗?或者它不是一回事。这是否将MVC的VC合并为一个文件?
.backgroundColor
和.size
等属性与@property
和@synthesize
相同,如果是这样,它与属性相同?在Objective-C中,属性和属性的含义是可互换的术语还是它们不同?例如.backgroundColor
在某些Cocoa类中是否有@properties
语法,或者这是错误的查看方式?
答案 0 :(得分:4)
是。名称为“ViewController”的Objective-C类名称是Apple约定,表示根据Model-View-Controller范例,它是“Controller”部分的一部分。
NSView
,NSImageView
等控制器:NSViewController
类。
.backgroundColor和.size都是属性。
@property
关键字是属性的声明关键字。@synthesize
关键字。答案 1 :(得分:1)
你的NSViewController
子类绝对是MVC中的控制器。它控制视图并将模型类中的数据推入其中。
关于内置Cocoa类的.backgroundColor
和所有其他点符号属性,你也是正确的。它们使用@property
和@synthesize
定义,就像您要编写的类一样。 但是,Cocoa中使用了更多简单的类(实际上,它们是结构体)(例如NSSize
和NSRange
)。当您使用点符号(例如range.length
,假设range
为NSRange
)访问这些字段时,他们没有使用@property
或@synthesize
,因为他们实际上并不是Objective-C类,而是简单的C结构。
我个人在Objective-C中同时使用“属性”和“属性”,但其他开发人员可能不同意。