您好,登錄后才能下訂單哦!
本篇文章為大家展示了Objective-C中的分類,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
Animal.h
#import <Foundation/Foundation.h>
@interface Animal : NSObject
-(void) eat : (NSString *)food;
@end
Animal.m
#import "Animal.h"
@implementation Animal
/**
吃
/
-(void) eat:(NSString )food{
NSLog(@"I like eat %@" , food);
}
@end
在main入口中的測試
#import <Foundation/Foundation.h>
#import "Animal.h"
int main(int argc, const char argv[]) {
@autoreleasepool {
Animal dog = [[Animal alloc] init];
NSString *food = @"Bone";
[dog eat:food];
}
return 0;
}
結果 :
一 , 命名分類 AnimalPart
h:
#import <Foundation/Foundation.h>
#import "Animal.h"
@interface Animal (AnimalPart)
-(void) call : ( NSString * ) sound;@end<br/" rel="nofollow">br/>@end<br/m:
#import "AnimalPart.h"
@implementation Animal (AnimalPart)
-(void) call:(NSString *)sound{
NSLog(@"I Call Sound : %@" , sound);
}
@end
測試:
#import <Foundation/Foundation.h>
#import "Animal.h"
#import "AnimalPart.h"
int main(int argc, const char argv[]) {
@autoreleasepool {
Animal dog = [[Animal alloc] init];
NSString food = @"Bone";
[dog eat:food];
//命名分類擴展的方法
NSString sound = @"wang wang wang ......";
[dog call:sound];
}
return 0;
}
結果:
解釋:
創建AnimalPart的h和m文件。但是AnimalPart作為Animal的擴展分類,只能寫在()當中 。
實現在AnimalPart的M中間中實現代碼(未命名分類在Animal的M中實現)
不能夠擴展屬性(未命名分類可以)
二 , 未命名分類 AnimalPartUnName
因為未命名分類不需要m文件所以只建立h文件
h文件
#import <Foundation/Foundation.h>
#import "Animal.h"
@interface Animal ()
@property NSString *name;
-(void) Writename;
@end
在Animal的m文件中實現
main文件
結果
上述內容就是Objective-C中的分類,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。