iOS 之類的擴充套件

2021-06-27 19:41:11 字數 2244 閱讀 6348

在ios中, 類的擴充套件有四種方法:

1. 類目(category)

1.1 類目的寫法:@inte***ce 類名(將要擴充套件的類名)  (類目名)

1.2 類目的主要作用是為沒有源**的類新增方法, 通過category新增的方法會成為原類的一部分, 從而達到擴充套件乙個類的功能.

1.3 一般不建議重寫原始類的方法.

1.4 在category中不能夠為類新增新的成員變數, 但是category包含類的所有成員變數, 即使是@private的. category可以重新定義新方法, 也可以override繼承過來的方法.

示例**:

先建立乙個student類, 為nsstring的擴充套件

#import

@inte***ce nsstring (student)

- (void)studentname;

@end

#import "nsstring+student.h"

@implementation nsstring (student)

- (void)studentname

@end 

2. 延展(extension)

2.1 延展的作用是為類新增私有方法和屬性, 其主要作用是管理類的"私有"方法

2.2 extension針對的是自己的類, 必須有源**的類 

2.3 其相當於把category的.h檔案挪到了.m檔案中.

3. 協議(protocol), 是ios開發中常用的技術, 是為了實現介面與介面之間的通訊

3.1 協議是一套標準(一堆方法飛宣告), 只有.h檔案. 就像一張任務清單, 上面寫了一堆需要處理的事. 清單交給誰, 誰就要去完成清單上歸定的任務.

3.2 接受協議的物件需實現協議中定義的方法. 即:清單交給誰, 誰就要去完成清單上歸定的任務.

3.3 協議裡面只定義方法, 不實現方法, 即只有.h檔案, 沒有.m檔案

3.4 在協議中需要制定乙個**人delegate, 需用assign來定義, 是為了防止迴圈擁有,  不能釋放.

示例**如下: 在

secondviewcontroller類中制定協議由mainviewcontroller類來實現

在secondviewcontroller.h中

#warning 第一步:建立協議

@protocol secondviewcontrollerdelegate

// 協議的方法是為了讓實現方進行方法名的統一,這樣就會方便呼叫,不需要特意的知道每個實現功能的類的方法

@required

- (void)exchangestate;

@end

@inte***ce secondviewcontroller : uiviewcontroller

#warning 第二步:定義**人,用來呼叫協議所統一規定的方法

@property

(nonatomic

, assign

) id

delegate;

@end 在

secondviewcontroller.m中

#warning

第三步:在什麼時候觸發協議所定義的方法,讓已經存在的類實現任何的功能 [

self

.delegate

exchangestate];

在main

viewcontroller.m中

#warning 第四步:為了知道需要實現什麼樣的方法名,在相對的方法中實現功能,需要通過遵循協議來知道自己在那些方法中實現功能

@inte***ce

mainviewcontroller()

#warning 第五步:實現協議中所定義的方法,在方法中做相對應的功能,功能隨意

- (void)changestate

#warning 第六步:設定**人,讓**人去呼叫統一所規定的方法

secondviewcontroller*second =[[secondviewcontroller

alloc

] init

];second.delegate = self;

4. 繼承

4.1 

繼承是物件導向的乙個核心概念。在objective-c的繼承體系中,所有類的根類是nsobject,

我們定義的所有類都是它的子類。子類也叫擴充套件類或派生類。

4.2 

子類完全繼承父類的所有方法和屬性, 可以呼叫, 但在子類中子定義的屬性和方法, 父類不能呼叫

iOS開發之類別 擴充套件

在ios專案開發中允許使用類別為現有的類新增新的方法,並不需要建立子類。通過類別我們可以動態地為現有的類新增新的方法,可以將類的定義模組化地布局到多個相關檔案中。使用類別的好處為 一 進行模組化設計 二 利用類別來呼叫私有方法 介面部分格式如下 inte ce 已有類 類別名 方法的定義 end 注...

iOS開發之類別 擴充套件

在ios專案開發中允許使用類別為現有的類新增新的方法,並不需要建立子類。通過類別我們可以動態地為現有的類新增新的方法,可以將類的定義模組化地布局到多個相關檔案中。使用類別的好處為 一 進行模組化設計 二 利用類別來呼叫私有方法 介面部分格式如下 inte ce 已有類 類別名 方法的定義 end 注...

iOS之類別 category 的使用

1 類別介面語法格式 inte ce 已有類 類別名 定義方法 end 2 類別實現部分語法格式 implementation 已有類 類別名 方法實現 end 3 例項 為nsnumber新增乙個類別 1 nsnumber fk.h import 定義乙個類別 inte ce nsnumber f...