以前の投稿で、古い「C」プログラムをObjective-Cに変換していることを説明し、メッセージング(古いバージョン)の静的メソッドとクラスメソッドの違いを学びました。
しかし、インスタンスメソッドを呼び出すためのクラスメソッドを取得するにはどうすればよいですか(可能であると仮定して)?元の(静的)関数は次のとおりです。
static int newSplitB(int b, int hi, int lo, int found)
{
int hlp;
if(hi - lo <= 1)
return 0;
bIs(lo + (hi - lo + 1) / 2); // calls function bIs();
return 1;
}
そして、まったく同じコードが「Obj-Cに変換」されました。
+(int)newSplitB :(int)b :(int)hi :(int)lo :(int)found
{
int hlp;
if((hi - lo) <= 1)
return 0;
[TablesClass bIs:(lo+(hi-lo+1)/2)]; // gives compile error
return 1;
}
'bIs()'関数(簡潔にするために省略)は、'Tables'クラスの別のソースファイルにあります。残念ながら、プログラムをビルドしようとすると、クラスが同じ実装ファイルで以前に割り当て/初期化されていても、「TablesClass」が宣言されていない(この関数で最初に使用)エラーが発生します。
私は解決策を探すために何時間もネットを検索しましたが、役に立ちませんでした。私がやろうとしていることが不可能な場合、最後のメソッドを変更して、私が求めていることを実行するにはどうすればよいですか?前もって感謝します :-)