簡介
在 Objective - C 中也使用了“頭文件”和“實現(xiàn)文件”來區(qū)隔代碼高蜂,所以在創(chuàng)建類的時候我們要通過@class和#improt 來實現(xiàn)兩個類之間的互調(diào)锰什。
異同
- import 會包含當前類的所有信息(實體變量+方法)
class 只是告訴編譯器聲明類的名稱绝骚; - if(A,B,C 類種都import 了 D類)這樣編譯器編譯程序的時候就先從 A中先把 D類的.h文件編譯一遍河咽,在 B 中又會將 D 類的.h文件再次進行編譯拱绑,所以會增加編譯器編譯的時間;
- if(存在依賴的關(guān)系九妈,A 類中 import 了 B 類反砌,B 類 import 了 A 類)這樣相互引用,就會造成循環(huán)引用的問題萌朱,這時候就要用@class 來解決宴树;
用法
例如:
<code>
#improt <Foundataioin/Foundation.h>
@interface Person :NSObject
@property (nonatomic, copy)NSString * name
@property (nonatomic, strong)Man * manPerson;
@end
</code>
因為我們調(diào)用了Man這個類,所以我們在類中#import 或者@class 一個類名晶疼,這里我們就要用@class酒贬,因為在類的調(diào)用中沒有用到 Man 類中的屬性,如果在.m 中有用到 Man 類的屬性的話翠霍,我們就需要在.m 中進行#import 中進行操作锭吨,這樣才可以使得編譯器編譯代碼的時候速度更快。