1. 程式人生 > >既然有了@interface,@class是幹嘛的

既然有了@interface,@class是幹嘛的

菜鳥嘛,對這些基礎問題不是很瞭解,所以google了一下,原來是提前宣告的作用,主要適用於A和B兩個類互相引用的時候。
上程式碼:

@class B;
@interface A:NSObject
- (B*)fuckB;
@end

@interface B:NSObject
- (A*)fuckA;
@end

在類A的宣告中引用了類B,但是到了類B裡面又引用了類A,如果沒有@class B 這一句來拯救他們的話,編譯器就會停止編譯,因為這會陷入一個死迴圈。當然了,如果兩個類互相沒有瓜葛的話,@class 這句就沒有它本該有的作用了,要不要都行,但是為了清晰起見一般都不寫,迷惑人除外。