----------------------
asp.net+unity開發、
.net培訓、期待與您交流! ----------------------
更改xcode
模板
category
分類,類別,類目
//可以給某乙個類擴充一些方法(不修改原來類的**)
基本形式
//宣告
@inte***ce 類名(分類名稱)
@end
//實現
@implementation 類名(分類名稱)
@end
**示例:
//
不用繼承,不改動person類的情況下給person增加一些方法/*
分類的作用:在不改變原來內容的基礎上。可以為類增加一些方法,
分類使用注意:
1
,只能增加方法,
不能增加成員變數,
如果想新增變數,可以考慮通過繼承建立子類
2
,分類方法實現中可以訪問原來類中宣告的成員變數
3.
分類可以重新實現原來類中的方法,但是會覆蓋掉原來的方法,會導致原來的方法無法使用。
不建議重寫方法
4
,方法呼叫的優先順序:
分類(最後參與編譯的分類優先)
--》原來類---》父類,多個category中如果實現了相同的方法,只有最後乙個參與編譯的才會有效
5.
在很多的情況下,往往是給系統自帶的類新增分類,如nsobject和nsstring,因為有的時候,系統類可能並不能滿足我們的要求。
6.
在大規模的應用中,通常把相應的功能寫成乙個分類,可以有無限個分類,對原有類進行擴充,一般分模組寫,乙個模組乙個分類。
分類好處
乙個龐大的類可以分模組開發
乙個龐大的類可以由多個人來編寫,更有利於團隊合作
*/
@inte***ce person :nsobject
- (void)test;
@end
@implementation person
- (void)test
@end
@inte***ce person (mj)
- (void)study;
@end
#import "person+mj.h"
@implementation person (mj)
- (void)study
- (void)test
@end
#import "person+jj.h"
@implementation person (jj)
- (void)test2
- (void)test
@end
int main()
category的練習/*
給nsstring增加乙個類方法:計算字串中阿拉伯數字的個數
給nsstring增加乙個物件方法:計算字串中阿拉伯數字的個數 */
#import
@inte***ce nsstring (number)
+ (int)numbercountofstring:(nsstring *)str;
- (int)numbercount;
@end
//@"adfasd1334zd"
@implemetation nsstring (number)
+ (int)numbercountofstring:(nsstring *)str
} return count;
return [str numbercount]; }
- (int)numbercount
}return count; }
@end
int main()
// 類庫 : 很多類的集合
類的深入研究
(一)類的本質
類本身也是乙個物件,是class型別的物件,簡稱「類物件」
class型別的定義:
typedef struct obj class *class;
類名就代表著類物件,每個類只有乙個類物件。
利用class 建立 person類
利用person 建立person型別的物件
person *p=[[person alloc] init];
獲取記憶體中的類物件有兩種方法:
(1)person *p=[[person alloc] init];
class c=[p claas];//指向類的物件的指標呼叫class方法,物件方法
(2)class c1=[person class];//使用類名呼叫class方法類方法
注意:c和c1列印出來的位址相同,class c2=[p claa];可以證明所有的物件共用乙個類方法。
(二)類的載入和初始化
//
當程式啟動的時候,就會載入一次專案中所有的類。類載入完畢後就會呼叫+load方法
+ (void)load
//
當第一次使用這個類的時候,就會呼叫一次+initialize方法
+ (void)initialize
@end
@implementation student
//在類被載入的時候呼叫,重寫方法
+ (void)load
+ (void)initialize
/*1.當程式啟動時,就會載入專案中所有的類和分類,而且載入後會呼叫每個類和分類的+load方法。只會呼叫一次。
2.當第一次使用某個類時,就會呼叫當前類的+initialize方法
3.先載入父類,再載入子類(先呼叫父類的+load方法,再呼叫子類的+load方法)
4.先初始化父類,再初始化子類(先呼叫父類的+initialize方法,再呼叫子類的+initialize方法).注意:在初始化的時候,如果在分類中重寫了+initialize方法,則會覆蓋掉父類的。
5.重寫+initialize方法可以監聽類的使用情況。 */
int main()
----------------------
asp.net+unity開發、
.net培訓、期待與您交流! ----------------------詳細請檢視:
www.itheima.com
黑馬程式設計師 類的本質
黑馬程式設計師 oc 基礎 類的本質 android培訓 ios培訓 期待與您交流!內容概括 1 深入介紹類的核心及本質。2 類的呼叫 輸出及sel 型別。類的本質 1 類本身也是個物件,是class 型別的物件,簡稱類物件。建立過程 1.class建立出 person 類物件。2.再用 perso...
黑馬程式設計師 分類
基類介面部分 import inte ce fraction nsobject property nonatomic int numerator,denominator void setto int n over int d void reduce 約分 nsstring description 顯...
黑馬程式設計師 OC基礎07 類的本質
asp.net unity開發 net培訓 期待與您交流!一 概念 類也是乙個物件,是class型別的物件,簡稱 類物件 類名就代表著類物件,每個類只有乙個類物件。typedef struct objc class class 二 獲取類物件的方式 1 類方法 class c person clas...