在之前的文章中,我解釋說我正在將舊的'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;
}
的 '雙()' 功能 - 剪斷,爲了簡潔 - 是坐在我的'表'類的一個單獨的源文件中。不幸的是,儘管該類已經在相同的實現文件中被分配/更新過,但試圖構建該程序給了我一個未聲明(首次在此函數中使用)的'TablesClass'錯誤。
我已經搜索了一個解決方案的網絡小時,但無濟於事。如果我想要做的事情是不可能的,我怎麼能修改最後的方法來做我以後的事情?在此先感謝:-)
是'bIs` C函數或`TablesClass`方法? – BoltClock 2011-02-19 06:21:16