我用一些函數和一些方法聲明瞭一個接口。而不是聲明的:
-(void)foo;
+(void)bar;
Objective-C接口中的C函數風格不正確嗎?
我宣佈:
-(void)foo;
void bar();
我覺得這很好。編譯器認爲它很好。其他程序員也認爲這很好嗎?
我用一些函數和一些方法聲明瞭一個接口。而不是聲明的:
-(void)foo;
+(void)bar;
Objective-C接口中的C函數風格不正確嗎?
我宣佈:
-(void)foo;
void bar();
我覺得這很好。編譯器認爲它很好。其他程序員也認爲這很好嗎?
我不太明白這個問題的重點。您同樣可以宣告它們放在一起:
-(void)foo;
+(void) bar;
void bar();
所有的都在目標C合法,因爲它們是不同的實體(實例方法,類方法,C函數)具有相同的名稱可以共存。您可以從前者中的任何一個調用void bar()
而不發出問題,但不能以v/v作爲void bar()不傳遞對self
的引用。
如果問題是一個頗具風格的問題,我會將C函數與@interface分開聲明,因爲它們不是Objective-C。
隨着最新版本鏘的就沒有必要在所有的,如果他們不供公衆使用聲明這些...
更新
讀過@ Jano的的回答,我現在明白了點問題多一點:爲什麼選擇一個類方法而不是可以達到相同結果的函數(既不能訪問self
)。現在我傾向於總是使用類方法,它似乎在obj-C語境中是有意義的。 Jano的答案似乎很詳盡,爲什麼。
它只是一個用過的東西。
我會去的Objective-C風格的方法,除非我需要一些功能,只有像C(如pow)中可用。
即使你想添加一個C方法,我覺得它應該在一個單獨的文件中,因爲AllCMethods.c
回憶,記住,使用所有的obj-c方法和C方法會更容易。
關注選擇C函數或靜態方法時:(從我的頭頂)
xxxUtils
類)。否則使用C函數。__attribute__((overloadable))
標記C函數時可能會重載。感謝您的輸入。好,客觀。現在我想要一個好的主觀來補充它:) – Minthos
這純粹是一個風格的問題是。我可能會在@interface之外聲明它們,但是在同一個頭文件中。 如果它們是私人的,我會在實現的源文件中聲明它們是'static'。 – Minthos