2014-03-13 24 views
1

我越學習和研究,少我現在明白了..很無奈.. 但是,還是儘量搞清楚,我希望任何人誰詳細瞭解,請幫我:)在「@include(或import)」和「:(inheritance」)之間使用場景後會發生什麼?

我知道當我使用「@import(include)(file1)」時,它只是將file1放入當前源文件中,這樣我就可以...使用文件名...(我不太確定.. ) 而且,

問題是當我繼承file1.h,file1.m中包含的每個定義都可以繼承..? 「包含」情況如何?它還包括幕後的file1.m ..?或者我的程序只是在file1.h中知道聲明,並且可以在運行時參考真正的定義..?

很抱歉,如果我的問題是有點不曲子,甚至我的大腦是沒有組織,以及YY

回答

0

接下來的問題是,當我繼承file1.h,每個定義包含在file1.m 可以繼承..?

您不會繼承文件,您可以#include或#import它。其實這件事比你想象的要容易。

在任何源代碼文件中,都使用函數和對象。例如,您可以使用NSString或自定義對象MyClass。但編譯器和鏈接器需要知道WHERE是這些對象和函數的定義,以便它可以驗證語法並與適當的庫鏈接。

假設你在一些源文件中使用MyClass。

MyClass myclass = [[MyClass alloc] init]; 

編譯器不知道什麼MyClass是,所以你寫這

#include "MyClass.h" 

這告訴編譯器查找對象時,它應該考慮這樣做的頭文件。那麼MyClass.m呢?那麼,在你正在編譯對象的地方,MyClass.m的內容並不重要,因爲這將在稍後由鏈接器解決。

+0

你也可以'@ import'它......這就是問題所在,是不是'@ import'' @ import'它的'@ imports'? –

0

在的ObjectiveC,您將使用「導入」 在C你會使用「包括」

在Xcode中舉辦你可以在c和ObjectiveC中正確使用。

基本上什麼是劑量,就是在程序編譯之前,把你導入的文件放在導入它的文件之前。

例如,如果我使用「import myViewController.h」,在類「mainViewController.m」中 我將它導入到的類(「mainViewController.m」)可以使用位於「 @interface「在」導入myViewController.h「文件。

希望我的回答是很清楚..

+0

'@ import'是一個新的構造,它不同於'#import',它也具有鏈接器的含義。 –

0

對符號可見性的影響應該完全相同。

如果你正在處理somelib.h,並在我的模塊。你@import somelib; 它應該給你在那個編譯單元相同的符號,就像你做#import <somelib.h> 但你不必在你的鏈接階段添加框架。

相關問題