兩者有什麼區別?爲什麼Objective-C中的頭文件在頂部有導入和類語句?
2
A
回答
8
前向類聲明(類語句)只是告訴編譯器一個存在的類,而沒有指定它的方法,屬性等等。當你只需要聲明該類的變量時,就可以使用前向類聲明是你大部分時間在頭文件中需要的東西。然後你將不得不在實現文件中導入類。
轉發類聲明在解決循環依賴中特別有用。
檢查了這一點的詳細信息:
1
@class聲明是一種告訴編譯器特定類類型存在而不提供它的類接口的完整聲明的方式。當你想引用一個類而不公開/引用它公開的方法時,這很有用。換句話說,使用類聲明可以引用頭文件中的類,然後延遲將實現導入到.m文件。
相關問題
- 1. 爲什麼默認的xcode類頭文件導入Foundation/Foundation.h?
- 2. 可可:導入頭文件和導入主文件有什麼區別?
- 3. 什麼是。在Python中的導入語句是什麼意思?
- 4. 導入在文件的頂部,GI
- 5. 爲什麼在.t文件的頂部有#!perl?
- 6. 什麼是文件名包含「+」的導入語句?
- 7. 爲什麼在Java導入語句中使用*很不好?
- 8. 爲什麼粘引導頂部導航菜單欄沒有堅持到頂部
- 9. 爲什麼必須導入內部類?
- 10. 爲什麼我的Excel導出在頂部有一個空行?
- 11. 爲什麼我不能在頂部移動導入?
- 12. UNION語句頂部的SELECT語句
- 13. SQL update語句頂部和底部行
- 14. 爲什麼java中沒有頭文件?
- 15. 爲什麼POD文件無法在Xcode中導入目標項目頭文件?
- 16. 導入.pch文件和.h文件的頂部?
- 17. 將導入語句添加到新文件的開頭
- 18. 爲什麼Python在try語句中沒有實現elif語句?
- 19. echo()語句和print()語句在PHP中有什麼區別?
- 20. 導入文件全部內容的Python語法是什麼?
- 21. 爲什麼我必須導入我的委託頭文件?
- 22. 爲什麼只在Python中導入類?
- 23. 爲什麼if語句中的print語句沒有運行?
- 24. Sql中的Callable語句和Prepared語句有什麼區別?
- 25. 使用Gjs導入語句導入的內容是什麼?
- 26. 爲什麼Ruby中沒有`elsunless`語句?
- 27. setup_module()與py.test中的頂級語句有什麼不同?
- 28. 爲什麼文件存在語句在android中不是true?
- 29. 爲什麼這個div有頂部和底部的空白
- 30. 解析CSV文件導入與頂部