2014-11-08 50 views
2

每隔一段時間我都會開始一個「輔助類」,並發現我完全可以用C函數來滿足我的需求(儘管這些函數通常可以使ObjC在他們可能會返回類型或NSDictionary *或其他任何..),所以我會刪除@implementation和@interface,並沒有任何類,只有.h和.m文件..只包含C(或最小的ObjC ..)的ObjC文件

什麼是最佳做法,應該將我的.m文件更改爲.c文件?或者這對於那裏的ObjectiveC類型是不可能的/困難的?使用我不知道的或者我所做的很好的不同文件類型有什麼好處嗎? (我只開發OSX和iOS,並完全用Xcode的,至少現在是這樣。)

感謝您的時間:)

+3

沒有要求Objective-C源文件(.m)包含類接口或實現。如果代碼使用的是Objective-C語言,那麼它是一個Objective-C源文件,應該用.m擴展名來命名。 – 2014-11-08 11:17:48

+0

感謝@KenThomases – Jef 2014-11-08 11:27:13

+1

也許你可以考慮使用類方法而不是函數? – Antzi 2014-11-12 07:52:43

回答

2

當您使用Xcode中的命令行工具它給你一個.m文件儘管事實上初始文件不是類實現文件,但對於您的代碼,因此最好遵循此模式(對於其他項目中的主文件也是如此)。

如果您在Xcode中選擇一個文件並打開右邊欄,您可以讓Xcode知道如何解析該文件。所以如果你的.c文件中有ObjectiveC,你可以將Parse類型從C文件改爲ObjC文件,它將會正常工作。

+0

謝謝詹姆斯。它確實類似於main.m文件,它只是一個c函數,但在該函數中有一個appDelegate對象。偉大的一點 – Jef 2014-11-08 10:44:43

+0

所以我想我正在做什麼蘋果做,你得到的點隊友,謝謝 – Jef 2014-11-08 10:47:17

+1

「對象文件」是一個編譯源文件,輸入到鏈接器,並使用「.o」擴展名。您可能是指類實現文件(帶有「.m」擴展名)。 – 2014-11-11 23:48:00