我正在从C迁移到Obj-C到Obj-C ++。我将在下学期学习C ++课程。希望我能轻松一点。
所以在Obj-C中,私有和公共是由您在头文件中声明的任何内容决定的。在@interface
文件的.h
范围内,您可以在该类中调用所有可以在该类上调用的属性和实例/类方法。从我可以假设的C ++,我觉得公共和私有事实上都是在.h
文件中写的:ivars,函数,你有什么。我在这个假设中是对的吗?
答案 0 :(得分:2)
使用早期的Objective-C编译器,类的@interface
(通常在头文件中声明,.h
)必须包含所有数据成员(“ivars”)。使用较新的LLVM编译器,可以在@implementation
(.m
文件)中列出它们。
Objective-C类的其他部分不受此限制。可以在.h
,.m
,两者或两者都声明或定义方法!标头通常描述最重要的方法,省略特定于实现的内容。 Categories (语言的一个特性)是一种向类添加新方法的方法,同时在其他地方声明和定义它们。还有各种方法可以使用NSObject
和Objective-C运行时来做几乎你能想到的任何事情,例如:在运行时决定一个类是否有方法,或添加方法等。
答案 1 :(得分:1)
不,你可以拥有公共和私人不在各种.h文件中。不确定obj-c / c ++,但是如果你确实选择将它们放在in.h文件中(首选更大的程序),你需要#include .h文件。