的Objective-C是ANSI C的超集GNU C,you can nest one function in another function ...這樣...是否可以窩在Objective-C的另一個函數中的一個函數
float E(float x)
{
float F(float y) //objective-C compiler says expected ; at end of declaration
{
return x + y;
}
return F(3) + F(4);
}
是否有可能在Objective-C中做到這一點?
我知道塊和NSInvocation對象,它可以模擬上面的C代碼。但是,你可以在Objective-C的另一個函數的詞彙範圍內定義一個函數嗎?喜歡的東西...
-(int) outer:(int)x
{
-(int) inner:(int)y //use of undeclared identifier inner
{
return x * 3;
}
return inner(x);
}
您在第一句中混合了術語。方法和功能是兩個不同的東西。 'self'指針只適用於方法。 Objective-C支持函數(沒有'self'指針)。當然,這些功能不受任何課程束縛。我相信你知道這一點,但我想爲其他人澄清這一點。 – rmaddy
它支持C函數,因爲它是C的超集,但它不支持ObjectiveC函數,因爲它們是必需的方法。因此,ObjectiveC函數必須是方法,並且始終具有「自我」引用。實際上,如果您嘗試在類之外聲明具有ObjectiveC語法的函數,則給定的錯誤是_missing方法聲明_的上下文。 – Jack