@class關鍵字的使用及與#import的區別:
//
// classa.h
// ios150624_objectivec_@class關鍵字
//// created by pengjunlong on 15/6/24.
//#import //#import "classb.h" //會有迴圈鏈的存在,導致編譯無法展開,(classa與classb相互引用)
@class classb;
@inte***ce classa : nsobject
@property (copy,nonatomic)nsstring *name;
- (void)setclassb:(classb *)classb;
- (void)printclassbinclassa;
@end
//
// classa.m
// ios150624_objectivec_@class關鍵字
//// created by pengjunlong on 15/6/24.
//#import "classa.h"
#import "classb.h"
@implementation classa
- (void)setclassb:(classb *)classb
- (void)printclassbinclassa
@end
//
// classb.h
// ios150624_objectivec_@class關鍵字
//// created by pengjunlong on 15/6/24.
//#import #import "classa.h" //會有迴圈鏈的存在,導致編譯無法展開,(classa與classb相互引用),引用了當前類的型別以及類中的方法
//@class classa; //只引用這個類的型別,不引用這個類的方法
@inte***ce classb : nsobject
@property (copy,nonatomic)nsstring *name;
- (void)setclassa:(classa *)classa;
- (void)printclassainclassb;
@end
//
// classb.m
// ios150624_objectivec_@class關鍵字
//// created by pengjunlong on 15/6/24.
//#import "classb.h"
@implementation classb
- (void)setclassa:(classa *)classa
- (void)printclassainclassb
@end
//
// main.m
// ios150624_objectivec_@class關鍵字
//// created by pengjunlong on 15/6/24.
//#import #import "classa.h"
#import "classb.h"
//#import關鍵字,引用類的型別及類中定義的方法,若#import包含在標頭檔案中可能會導致迴圈包含,需要用@class關鍵字來打斷迴圈鏈
//@class關鍵字,只引用類的型別,不引用類中的方法.但是如果想使用類中的方法,需要在對應的.m檔案中用#import包含
//@class只是告訴編譯器存在這個型別,#import知道類內部資訊全部
int main(int argc, const char * argv)
return 0;
}
OC學習筆記之OC類你好
之前,小橋的mac系統是裝在虛擬機器中的,虛擬機器占用資源太大,想裝在實機上,所以這個星期都在搗鼓,終於完工!一 關於類 高階語言中似乎都有類的概念,c 中是從c的結構體而來。類是物件導向語言中的核心部分,物件導向的三大特性在類中都有具體表現!比如在c 類中,有封裝,有繼承,多型性有過載!相信oc中...
OC之構造方法
一 構造方法 一 構造方法的呼叫 完整的建立乙個可用的物件 person p person new new方法的內部會分別呼叫兩個方法來完成 2件事情,1 使用 alloc 方法來分配儲存空間 返回分配的物件 2 使用 init 方法來對物件進行初始化。可以把new 方法拆開如下 1.呼叫類方法 a...
OC學習筆記之block
一 什麼是block block是oc中的乙個資料型別,但是它很特別,因為它是用來儲存一段 的 可以理解為把一段 賦值給block型別的變數 它和函式有點相似,它可以帶引數,可以有返回值,呼叫方式也一樣。二 定義乙個不帶形參沒有返回值的block main.m block created by 葬花...