2010-09-17 28 views
1

我需要根據一些業務規則的定價進行計算,我不想在幾個ViewController中複製它。來自.Net世界,我會在類上使用靜態方法來做到這一點。 Objective-C中的類似解決方案是什麼?在objective-c iphone中共享靜態函數?

回答

3

最有可能的類方法 - 即。在接口中用+聲明的函數。

@implementation PriceCalculator 

+ (float)calculatePrice:(float)param1 { 
    return param1*4.0; 
} 

@end 

(在頭文件類似的@interface)

被稱爲像這樣:

price = [PriceCalculator calculatePrice:3.0]; 
1

如果您不需要重寫子類的行爲,你可以只需編寫一個C函數,這相當於Java和C#中的靜態方法。否則,按照JosephH的建議,寫一個類方法。下面是他的榜樣改寫爲C函數:

float calculatePrice(float amount) 
{ 
    return amount * 4.0; 
} 

功能可以申報/在.H /的.m文件對您的類之一如果方便的話實現的,但你也可以創建一個單獨的。 h/.m對,如果你喜歡,它只包含C函數。