OC 类别(分类)Categroy

Categroy类别,又称为扩展类,在类的原基础上扩展方法,且不可添加变量,如果扩展的方法与原始类中的方法相同,则会隐藏原始方法,且不可在扩展方法中通过super调用原始方法,这里与继承不同。

定义: 下面演示在人的基础扩展为学生

定义类

Person.h

  1. #import <Foundation/Foundation.h>  
  2. @interface Person : NSObject  
  3. @property(retain)  NSString *name;  
  4. @property(nonatomic,assign) int age;  
  5. @end  

Person.m

  1. #import "Person.h"  
  2. @implementation Person  
  3. @end  


扩展

Person+Student.h   约定,类别的文件名为  扩展类+类别名.h

  1. #import "Person.h"  
  2. @interface Person (Student)  
  3. -(void)studing;  
  4. @end  

Person+Student.m

  1. #import "Person+Student.h"  
  2.   
  3. @implementation Person (Student)  
  4. -(void)studing{  
  5.     NSLog(@"学习ing");  
  6. }  
  7. @end  

main.m

    1. #import <Foundation/Foundation.h>  
    2. #import "Person+Student.h"//导入时导入扩展的那个文件  
    3.   
    4. int main(int argc, const charchar * argv[])  
    5. {  
    6.   
    7.     @autoreleasepool {  
    8.         Person *p =  [[Person alloc] init];  
    9.         [p studing];  
    10.     }  
    11.     return 0;  
    12. }  
原文地址:https://www.cnblogs.com/oc-bowen/p/5020562.html