IOS開發基礎Object-C(11)—Category語法

謝天謝地,糟心的內存管理終於講完了,我們的OC內存管理也就先告一段落了,以後還是需要多練習多理解,記住,理解最重要。

今天呢,我們再來講一個很重要的語法——Category,根據字面的意思呢就是種類、分類。這是一個OC特有的語法,在Java中是沒有的,但是在OC項目中經常被用到,所以說很重要。

我查了很多的資料,發現書中對Category並沒有一個很明確的定義,如果要給他一個定義的話,我覺得稱它爲擴展類比較合適,爲什麼說是擴展類呢?我跟大家說一下Category的用途大家就瞭解了。

Category的用途

1.  在不創建繼承類的情況下實現對已有類的擴展。

2.  簡化類的開發工作(當一個類需要多個程序員協同開發的時候,Category可以將同一個類根據用途分別放在不同的源文件中,從而便於程序員獨立開發相應的方法集合)。

3.  將常用的相關的方法分組。

4.  在沒有源代碼的情況下可以用來修復BUG。

總之就是一句話,Category可以動態的爲已經存在的類添加方法,而且原始規模較小,不需要創建子類

Category的用法

我們還是來新建一個類吧,在實際運用中介紹一下它的用法
首先,我們來新建一個Student類

Student.m

#import "Student.h"    
    
@implementation Student    
       
#pragma mark test方法    
- (void)test{    
        
    NSLog(@"調用了test方法");    
        
}    
    
    
@end 
現在給大家出一個題目,在不動Student的情況下,給Student添加一個新方法,你會怎麼做?

我就不賣關子了,直接上圖

1、新建Objective-C category


2、分類名稱填寫Test,Category on 選擇Student


3、注意擴展類的命名格式

Student+Test.h

#import "Student.h"

//()代表着一個擴展類
//()裏面的Test代表着擴展類的名稱
@interface Student (Test)

-(void)test2;

@end

Student+Test.m

import "Student+Test.h"
@implementation Student (Test)
- (void)test2{    
        
    NSLog(@"調用了test2方法");    
        
}
@end

是不是很方便?剩下的就不用我再說了吧,大家快來多多練習一下吧

相關鏈接

http://pan.baidu.com/s/1eQ4UYQm



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章