oc57--Category 分類
阿新 • • 發佈:2017-08-26
classname all nsobject func @property 名稱 logs 變量 atom
// // main.m // Category基本使用:1.不修改類而擴充類。2.對於一個龐大的類,分模塊開發。 #import <Foundation/Foundation.h> #import "Person.h" #import "Person+NJ.h" /* 方法: 方法的聲明: 方法的實現: 所以: 通過分類給某一個類擴充方法, 也分為聲明和實現兩個部分 // 分類的聲明 @interface ClassName (CategoryName) NewMethod; //在類別中添加方法 //不允許在類別中添加變量 @end ClassName: 需要給哪個類擴充方法 CategoryName: 分類的名稱 NewMethod: 擴充的方法 // 分類的實現 @implementation ClassName(CategoryName) NewMethod @end ClassName: 需要給哪個類擴充方法 CategoryName: 分類的名稱 NewMethod: 擴充的方法*/ int main(int argc, const char * argv[]) { Person *p = [[Person alloc] init]; p.age = 30; [p say]; [p playFootball]; [p playBasketball]; NSString; NSArray; return 0; }
// Person.h #import <Foundation/Foundation.h> @interface Person : NSObject @property (nonatomic, assign)int age; - (void)say; @end
// Person.m #import "Person.h" @implementation Person //-(void)say //{ // NSLog(@"age = %i", _age); //} -(void)say{ NSLog(@"age= %i",_age); } @end
// // Person+NJ.h #import "Person.h" @interface Person (NJ) // 擴充方法 - (void)playFootball; - (void)playBasketball; @end
// // Person+NJ.m #import "Person+NJ.h" @implementation Person (NJ) // 實現擴充方法 - (void)playFootball { NSLog(@"%s,%i", __func__,[self age]); } - (void)playBasketball { NSLog(@"%s,%i", __func__,[self age]); } @end
oc57--Category 分類