Rozważmy następującą sytuację: wspólnyObjective-C/Cocoa: Właściwa konstrukcja dla delegatów i kontrolerów
Masz jakieś MainView
w aplikacji Cocoa, załadowany z NIB, który jest kontrolowany przez MainViewController
. Twój MainView
zawiera kilka elementów sterujących, takich jak UILabel infoLabel
. Masz również klasę delegata MyDelegate
, która otrzymuje jakieś wydarzenie.
Chcesz się upewnić, że gdy MyDelegate
odbiera swoje wydarzenie, infoLabel
jest odpowiednio aktualizowany. Problem polega jednak na tym, że MyDelegate
nie ma odniesienia do MainView
lub MainViewController
i nie zna etykiety.
Jednym z rozwiązań jest przekazanie odwołania do obiektu delegata o numerze MainViewController
, ale jest to niepoprawne, ponieważ możesz znaleźć się w niepożądanej sytuacji, w której obiekt ma odniesienia do siebie nawzajem.
Jaki jest właściwy projekt rozwiązania tego problemu?
Mam ten sam problem w tej chwili. Rozwiązaniem dla nas jest odwoływanie się. Mówisz, że to niepożądana sytuacja. Czy możesz wyjaśnić, dlaczego? – Kriem
Dla mnie dwa główne powody: okrągłe odniesienia "czuć" źle; masz tendencję do ciągłego rzucania odniesienia. Mogę być całkowicie wyłączony. – Jake
Wiem co masz na myśli. Nie mogę się doczekać, co inni o tym sądzą. Dobre pytanie. – Kriem