类扩展和头文件到底是什么?有什么区别?在头文件和类扩展中声明属性/方法有什么区别。我对objective-c完全陌生,所以初学者术语会很有用:)
提前致谢!
类扩展和头文件到底是什么?有什么区别?在头文件和类扩展中声明属性/方法有什么区别。我对objective-c完全陌生,所以初学者术语会很有用:)
提前致谢!
顾名思义,它们扩展了类。类延续是另一个名称。类扩展通常用于声明私有方法和属性。您希望类扩展名对 可见@implementation
,而不是在头文件中(即,您希望类扩展名和 @implementation 在 中MONClass.m
)。
头文件中的类型和方法通常是公开的——任何客户端都可以使用。
示例:在类扩展中声明的属性对于标头的客户端将不可见/不可访问#import
,但它可以被使用,@implementation
因为@implementation
可以看到类扩展的声明。
因此,这可用于模拟您的 ivars 和方法的受限访问。这很有用,因为不能将 ObjC 方法和属性指定为私有/受保护/公共(例如 using @public
)。
类扩展与类别不同,主要是因为扩展可以声明存储(例如,将产生支持 ivars 的属性)。
头文件(.h)
是您在现有类中公开声明属性、方法和协议的地方。然后,您可以导入此文件,当然,将其用于您的实施。
扩展是您的实现文件中的另一个。这扩展了导入的头文件的内部实现,添加了在某人或其他人导入与类关联的头文件时将不可用的方法。@interface
(.m)
有关更多信息,请查看Apple 关于自定义现有类的文档