我有2個文件,somefile.h
和somefile.m
。我想將它們合併成一個.m文件(關於爲什麼的長篇故事)。但是,我的AppController使用somefile進行一些調用。所以,在我的AppController的頂部,我有一個#import "somefile.h"
。很明顯,當我組合這些文件時,.h文件將被刪除。所以,我可以只使用#import "somefile.m"
,仍然有一切工作?導入.m文件
謝謝!
我有2個文件,somefile.h
和somefile.m
。我想將它們合併成一個.m文件(關於爲什麼的長篇故事)。但是,我的AppController使用somefile進行一些調用。所以,在我的AppController的頂部,我有一個#import "somefile.h"
。很明顯,當我組合這些文件時,.h文件將被刪除。所以,我可以只使用#import "somefile.m"
,仍然有一切工作?導入.m文件
謝謝!
我剛做了一個測試,它看起來像這是可能的。
我能夠導入以下.m
文件並使用它。但是,我不得不從編譯源代碼列表首先除去它:
#import <Foundation/Foundation.h>
@interface MyClass : NSObject
+ (void)staticMethod;
- (void)instanceMethod;
@end
@implementation MyClass
+ (void)staticMethod
{
}
- (void)instanceMethod
{
}
@end
然而,這仍是一個壞習慣,你應該避免。
非常感謝! – John 2012-03-22 04:09:29
並非如此,Objective-C的工作原理與C或C++類似,只能導入頭文件,而不是實現文件。
從技術上講不是真的。如果你小心,導入一個.m文件是安全的。如果僅使用靜態函數,或者從編譯單元中除去.m文件,則導入.m文件是安全的。 – 2012-03-21 15:47:28
請詳細說明爲什麼你想要一個文件。分而治之比在一個'.m'文件中擁有大量的類更好。 – 2012-03-21 15:46:16
@ RichardJ.RossIII因爲我通過Unity3d構建Xcode項目。 Unity在導入頭文件時遇到問題,它只會導入.m's。我認爲這可能是一個簡單的解決方法,因此我不必深入研究Unity的構建腳本。 – John 2012-03-21 15:52:22