12
A
回答
26
這是一個ObjC型的向前聲明:
@class MyClass;
而且這是ObjC協議的前向聲明:
@protocol AVAudioSessionDelegate;
對於那些很好奇的人,爲什麼這很有用:前向聲明可以用來顯着減少依賴關係並顯着縮短構建時間,因爲它允許您避免使用頭部和/或整個框架(然後#import
其他框架)。當不使用前向聲明時,許多不必要的頭文件對程序的其他部分是可見的 - 更改一個頭文件可能導致許多文件被重新編譯,編譯和鏈接時間將會增加。因爲ObjC類型總是作爲指針處理(在我們的抽象層次上),所以在大多數情況下,前向聲明就足夠了。然後,您可以在您的@implementation
或類延續聲明你的實例變量,然後#import
可以去在*.m
文件。另一個原因是避免循環依賴。
相關問題
- 1. 向前聲明
- 2. 向前聲明VS#進口繼承
- 3. 前向聲明的類成員的前向聲明
- 4. 接口聲明
- 5. 聲明接口
- 6. OCaml前向聲明
- 7. 類向前聲明
- 8. 類的前向聲明
- 9. 前向聲明的缺點?
- 10. 向前聲明的類
- 11. 類的前向聲明?
- 12. C中的前向聲明?
- 13. C++中的前向聲明
- 14. COM接口聲明
- 15. Maxscript函數前向聲明
- 16. 前向聲明和包括
- 17. C++前向聲明問題
- 18. 模板類向前聲明
- 19. 向前聲明錯誤
- 20. GCC向前聲明和__may__alias
- 21. CADisplayLink向前聲明錯誤
- 22. 類前向聲明錯誤
- 23. 向前聲明VS包括
- 24. C++/CLI向前聲明
- 25. 無法找到BaseType的接口聲明/試圖使用BaseType的正向聲明
- 26. 接口聲明的訪問說明符
- 27. 抽象接口聲明
- 28. 聲明實現接口
- 29. 在哪裏聲明接口?
- 30. 目標C接口聲明
這實際上並沒有回答我應該如何向前聲明@interface對象。使用我給出的例子將會有所幫助。 – aerlfredith
對不起,你的答案DID解決了我的問題我只是沒有完全理解你的意思。 @interface對象也用@class MyClass預先聲明;我期待更像@interface Myclass ;.對不起。謝謝 – aerlfredith
@aerlfredith不客氣:) – justin