在Objective-C编程中,我们经常需要对已有的类进行扩展和增强,以满足特定的需求。Extension和Category是两种常用的方式,它们可以在不修改原始类的情况下,为类添加新的方法和属性。本文将详细介绍Extension和Category的使用方法,并提供相应的源代码示例。
Extension(扩展)
Extension是一种特殊的Objective-C语法,它允许我们在类的实现文件(.m文件)中对类进行扩展。Extension可以添加实例变量、属性和方法,但只能在类的实现文件中访问。Extension的语法使用@interface和@end关键字,但不需要指定类的名称,只需在类的声明前加上一对圆括号即可。
下面是一个示例,演示如何使用Extension为一个名为Person的类添加一个私有的实例变量和一个私有的方法:
// Person.h
@interface Person : NSObject
@property (nonatomic, copy) NSString *name;
@end
// Person.m
@interface Person ()
@property (nonatomic, assign) NSInteger age;
@end
@implementation Person
- (void)printInfo {
NSLog(@"Name: %@, Age: %ld", self.name, (long)self.age);
}
@end
在上面的示例中,我们在Pe