いくつかの関数といくつかのメソッドでインターフェイスを宣言します。宣言する代わりに:
-(void)foo;
+(void)bar;
私は宣言する:
-(void)foo;
void bar();
大丈夫だと思います。コンパイラは問題ないと判断します。他のプログラマーもそれでいいと思いますか?
いくつかの関数といくつかのメソッドでインターフェイスを宣言します。宣言する代わりに:
-(void)foo;
+(void)bar;
私は宣言する:
-(void)foo;
void bar();
大丈夫だと思います。コンパイラは問題ないと判断します。他のプログラマーもそれでいいと思いますか?
C関数または静的メソッドを選択する際の懸念事項: (私の頭の上から)
xxxUtils
クラス)のガベージダンプであっても。それ以外の場合は、C 関数を使用します。__attribute__((overloadable))
。質問のポイントがよくわかりません。同様に、それらをすべて一緒に宣言できます。
-(void)foo;
+(void) bar;
void bar();
すべてがObjectiveCで合法であり、異なるエンティティ(インスタンスメソッド、クラスメソッド、C関数)であるため、同じ名前で共存できます。void bar()
前者のどちらからでも問題なく呼び出すことができますが、void bar()はへの参照を渡さないため、v/vは呼び出せませんself
。
質問がスタイルの問題である場合は、Objective-Cではないため、@interfaceとは別にC関数を宣言します。
最近のバージョンのClangでは、これらが公開されていない場合は、これらを宣言する必要はまったくありません...
アップデート
@Janoの回答を読んだことで、質問のポイントがもう少し理解できました。どちらかが同じ結果を達成できる(どちらもにアクセスできないself
)関数ではなく、クラスメソッドを選択する理由です。最近、私は常にクラスメソッドを使用する傾向がありますが、それはobj-Cコンテキストでは意味があるようです。ヤノの答えは、その理由についてかなり網羅的であるように思われます。
それはUSED-TOの問題です。
pow() のような C でのみ使用可能な関数が必要でない限り、Objective-C スタイルのメソッドを使用します。
Cメソッドを追加したい場合でも、AllCMethods.c
すべてのobj-cメソッドとCメソッドを呼び出し、覚え、使用するのが簡単になるため、別のファイルにする必要があると思います。