在objective-c iphone中共享静态功能?

时间:2010-09-17 13:14:14

标签: iphone objective-c ipad

我需要根据一些业务规则从定价计算,我不想在多个ViewControllers中复制它。来自.Net世界,我会在类上使用静态方法来执行此操作。 Objective-C中的类似解决方案是什么?

2 个答案:

答案 0 :(得分:3)

最有可能的类方法 - 即。在开始时用+声明的接口中的函数。

@implementation PriceCalculator

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

@end

(和头文件中类似的@interface)

这样称呼:

price = [PriceCalculator calculatePrice:3.0];

答案 1 :(得分:1)

如果您不需要覆盖子类中的行为,则可以编写一个C函数,它相当于Java和C#中的静态方法。否则,按照JosephH的建议,并编写一个类方法。这是他的例子被重写为C函数:

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

如果你方便的话,可以在你的一个类的.h / .m文件对中声明/实现该函数,但你也可以创建一个单独的.h / .m对,它只包含C函数