Цель C как общаться между объектами? - PullRequest
2 голосов
/ 24 января 2012

пытается выяснить лучший способ ведения дел. Я новичок в цели c как язык.

У меня есть объектный класс A и объектный класс B, и я хотел бы, чтобы A вызывал метод в классе B, и как только этот метод будет выполнен, чтобы B вызвал ответ A, сообщивший результат.

То, что я сейчас делаю, - это добавление self в NSNotificationCenter. Чем иметь класс B, отправлять это уведомление. Это работает, но это кажется излишним для этого типа простого процесса.

Законно ли просто передавать указатель self в класс B? что-то вроде?

// from class A
- (void)methodInClassA
{
B * b= [[B alloc]init];
[b callMethod:self];
[b release];
b = nil;
}

where class B would be
- (void)callMethod:(A*)sender
{
    [sender resultCallbackMethod];
}

1 Ответ

3 голосов
/ 24 января 2012

просто используйте протоколы ( Swift 3.1 ). здесь хорошо объяснено.

Протоколы объявляют методы, которые могут быть реализованы любым классом. Протоколы полезны как минимум в трех ситуациях:

  • Чтобы объявить методы, которые ожидаются от других
  • Чтобы объявить интерфейс к объекту, скрывая его класс
  • Чтобы зафиксировать сходство между классами, которые не связаны иерархически
...