Category可以为任何已有类添加或者替换方法,即使没有源代码,但是不能添加实例变量
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface NSString(TestClass)
-(int) getTestValue;
@end
NS_ASSUME_NONNULL_END
#import "TestClass.h"
@implementation NSString(TestClass)
- (int)getTestValue
{
return 100;
}
@end
#import <Foundation/Foundation.h>
#import "TestClass.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *testString=@"hello";
NSLog(@"test value is %d",[testString getTestValue]);
}
return 0;
}