Objective C等效于ActionScript的include语句

时间:2013-06-17 15:51:50

标签: ios objective-c

如果两个类具有不同的类层次结构但需要共享一些代码,那么ObjectiveC中最好的方法是什么?在actionscript中,你可以这样做:

class A : B{
include "commoncode.as"
}
class C : D{
include "commoncode.as"
}

然后将公共代码放在commoncode.as

编辑:以下是actionscript include语句的作用: “在编译时,编译器会将文件的全部内容复制到您的类中,就像您实际输入它一样。”

1 个答案:

答案 0 :(得分:0)

在AS3中,您可以使用“interface”使Class符合某组方法。在Objective-C中,您拥有基本上实现相同目标的“协议”。但是,这只允许您定义所需(或可选)方法,而不是实现它们。类本身仍然会实现。

如果你有一个只有helper方法的类(叫做CommonCode),你可以在需要使用这些方法的类中包含头文件。例如,MathUtils类可能如下所示:

MathUtils.h

CGFloat distance(CGPoint point1,CGPoint point2);

MathUtils.m

CGFloat distance(CGPoint point1,CGPoint point2) {
    CGFloat dx = point2.x - point1.x;
    CGFloat dy = point2.y - point1.y;
    return sqrt(dx*dx + dy*dy );
};

当包含在类中时,您可以调用此方法,如:

CGFloat dist = distance(myPoint1, myPoint2);

我应该注意这些是C风格的功能,而不是Objective-C。但是,您可以使用类方法而不是实例方法轻松地使MathUtils类静态化。