0

如果两个类具有不同的类层次结构但需要共享一些代码,ObjectiveC 中的最佳方法是什么?在 actionscript 中,您可以执行以下操作:

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

然后你把公共代码放在 commoncode.as

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

4

1 回答 1

0

在 AS3 中,您可以使用“接口”让 Class 符合一组特定的方法。在 Objective-C 中,您拥有基本上实现相同目标的“协议”。但是,这只允许您定义必需的(或可选的)方法,而不是实现它们。实现仍将发生在类本身中。

如果你有一个只有辅助方法的类(称为 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 类设为静态。

于 2013-06-17T16:09:08.400 回答