Objective-C中的Category是一种在不改变原有类的情况下对其进行拓展的机制,它可以添加实例方法、类方法、协议等到一个已有的类中。Category的定义需要在.h文件中声明,并在.m文件中实现对应的方法,具体实现方式类似于扩展类的方式,在拓展类的后面使用“@interface ClassName (CategoryName)”进行声明即可。Category的方法可以被原有类及其他Category使用。如果出现重名方法,则Category中的方法会覆盖原有类中同名的方法。举个例子,下面是一个向NSString类添加扩展的示例代码:
在NSString+Extension.h文件中声明Category:
@interface NSString (Extension)
- (BOOL)isValidEmail;
@end
在NSString+Extension.m文件中实现Category:
@implementation NSString (Extension)
- (BOOL)isValidEmail {
// 验证邮箱格式
return YES;
}
@end
这样做后,我们可以在其他文件中使用NSString的新扩展方法isValidEmail了。具体使用方法如下:
NSString *email = @"test@test.com";
BOOL isValid = [email isValidEmail];
希望以上回答可以帮助到您。