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