Category类别

#pragma mark - 类别是对原有类进行扩展

NSString+FilePath.h  —>类名+类别名.h/m


/*

类别(Category)的三大作用:

1.扩展类的方法(类别不是一个新的类,是对原有类的扩展,不会破坏原有类的内部结构,可以扩展类方法和实例方法)

2.分散类的实现(把一个类的方法按功能分类)

3.扩展类原有的方法(建议不要扩展----因为我们的类别中的扩展方法具有更高的优先级,它会导致super层断裂)(平级)

*/

#import

@interface NSString (FilePath){

//类别不能扩充实例变量

//int count;

}

//类别可以扩展属性,但是不会自动的生成set和get方法,要重写set和get方法

//使用类别不会使用扩展属性的功能(需要动态绑定)

//@property (nonatomic, strong) NSString *name;

.m

//@dynamic name;

//

//- (void)setName:(NSString *)name {

//    name = name;

//}

//

//- (NSString *)name {

//    return self.name;

//}

//同样的功能既可以用实例方法也可以用类方法

//扩展实例方法

- (NSString*)getFilePath;

//扩展类方法

+ (NSString*)getPath;

//////////2/////

@interface People :NSObject

//人可以说话

- (void)speaking;

@end

@implementation People

- (void)speaking {

NSLog(@"人具有说话的能力");

}

@end

//扩展原有类的方法(不建议)

- (void)speaking {

NSLog(@"不许讲话");

}

@end

你可能感兴趣的:(Category类别)