В AS3 у вас есть возможность использовать« интерфейс », чтобы соответствовать классу определенного набора методов. В 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 статическим, используя методы класса, а не методы экземпляра.
Вы можете сделать это в C тоже (и, в дополнение, Objective C). Однако это плохая идея. Не можете ли вы поместить общий код в функцию? – Dave
Не уверен, что я понимаю - commoncode.as содержит кучу функций. Это не компиляционная единица, а только что-то, что вставлено во время предварительной компиляции. – user2453876
Вы должны более точно описать, что делает ActionScript. В противном случае трудно найти подходящую концепцию для ваших целей в Objective-C. –