У меня есть следующий сценарий:
Class_A
- method_U
- method_V
- method_X
- method_Y
Class_B
- method_M
- method_N
HttpClass
- startRequest
- didReceiveResponse // is a callback
Теперь я хочу реализовать эти три потока (на самом деле их гораздо больше, но их достаточно, чтобы продемонстрировать мой вопрос):
Class_A :: method_X -> HttpClass :: startRequest:params -> ... wait, wait, wait ... -> HttpClass :: didReceiveResponse -> Class_A :: method_Y:result
и
Class_A :: method_U -> HttpClass :: startRequest:params -> ... wait, wait, wait ... -> HttpClass :: didReceiveResponse -> Class_A :: method_V:result
и последний:
Class_B :: method_M -> HttpClass :: startRequest:params -> ... wait, wait, wait ... -> HttpClass :: didReceiveResponse -> Class_B :: method_N:result
Обратите внимание, что методы в Class_A
и Class_B
имеют разные имена и функции, они просто делают нас одинаковыми HttpClass
.
Мое решение теперь состоит в том, чтобы передать указатель функции C на startRequest
, сохранить его в HttpClass
, и когда будет вызван didReceiveResponse
, я вызову указатель функции и передам результат (который всегда будет JSON Dictionary ).
Теперь мне интересно, могут ли быть проблемы с использованием простого C или есть лучшие решения, делающие это более объективно-C-способом. Есть идеи?