[Objective-c 基础

A.给某个类扩充方法(不改变原来的类)
例如,给类Person加上名为Simon的category,加上一个-study方法
使用()注明
Person+Simon.h
 1 @interface Person (Simon)
 2 - (void) study;
 3 @end
 4  
 5 Person+Simon.m
 6 @implementation Person (Simon)
 7 - (void) study
 8 {
 9     NSLog(@"学习----");
10 }
11 @end
 
使用:
 1 #import <Foundation/Foundation.h>
 2 #import "Person.h"
 3 #import "Person+Simon.h"
 4 
 5 int main(int argc, const char * argv[]) {
 6     @autoreleasepool {
 7         Person *p = [[Person alloc] init];
 8         [p study];
 9     }
10     return 0;
11 }
12  
!!注意:
1.只能增加方法,不能增加成员变量;
2.分类方法可以访问原来的成员变量;
3.分类和原类存在同名方法的时候,分类的方法优先级比较高,会覆盖原类的同名方法;
4.多个分类存在同名方法的时候,调用决定于编译顺序,调用最后编译的(编译顺序可以在项目设置的“Buid Phases”中修改);
 
原文地址:https://www.cnblogs.com/hellovoidworld/p/4119362.html