Есть несколько способов достижения этого. Это немного зависит от того, что это за классы, которым может понадобиться метод, о котором вы говорите. Другими словами, это зависит от уровня интеграции, который вам нужен. Например; должен ли этот метод работать с данными, инкапсулированными в этих классах.
Одним из подходов было бы использование одноэлементного вспомогательного класса, реализующего конкретный метод.
Другим подходом является класс-помощник со статическим методом (то, что Скуджи очень кратко пишет в своем ответе).
Другим подходом было бы создание базового класса, который содержит определенный метод, а все другие классы, которым этот метод нужен, просто расширяют базовый класс. Позвольте мне составить это для вас:
BaseClass.h:
@interface BaseClass
{
};
- someNiftyMethodWith:(NSString *)someCoolParameter;
@end
BaseClass.m:
@implementation BaseClass
- someNiftyMethodWith:(id)someCoolParameter
{
NSLog(@"yoy, that was easy to print %@ into the console", someCoolParamater);
}
@end
ExtendingClass.h
@interface ExtendingClass : BaseClass
{
};
- someMethodThatNeedsHelp;
@end
ExtendingClass.m
@implementation ExtendingClass
- someMethodThatNeedsHelp
{
[self someNiftyMethodWith:@"called by the extending class"];
}
@end
И есть еще больше способов достичь того, что вам может понадобиться при использовании Задачи C. Обращайте внимание на Категории, Делегаты, Протоколы.
И последнее, но не менее важное - очень старомодное решение простой C-функции, зарегистрированной в заголовочном файле, например:
Helper.h:
void OldSchoolHelperFunction(void) { printf("simple helper function"); };
Для этого вы должны включить заголовок Helper.h во все реализации классов, которые могут в нем нуждаться
#import "Helper.h"
@implemenation FooBar
- someMethodThatNeedsHelp
{
OldSchoolHelperFunction();
}
@end