У меня есть 2 класса, скажем, класс A и класс B.
Класс B создан в классе A.
У меня есть метод в классе A, который должен выполняться как в классе A, так и в классе B. Вызов метода в самом классе A - это нормально. Но я не уверен насчет вызова метода в классе B.
Я пытался объявить метод как статический, но поскольку я не могу использовать переменные экземпляра внутри статического метода, я думаю, что использование делегатов было бы хорошей идеей. Поскольку я из C # фона, я не уверен, использовать ли его в Objective C. Концептуально, я реализовал то, что мне нужно в C #, как показано ниже. Просто хотел узнать, какой это будет эквивалент в Цели C.
class A
{
public A()
{
B myclass = new B(() => calculate());
}
public void calculate()
{
// todo
}
}
class B
{
public B(Action calculate)
{
calculate();
}
}
Возможно ли это сделать с помощью протоколов.