/ / Cieľ C - Objekty správ v rámci objektov [closed] - Objective-C, OOP, Messaging

Cieľ C - Správy objektov v objektoch [uzavretých] - objektív-c, oop, zasielanie správ

Mám dotaz na správy, ktoré majú objektyboli vytvorené v rámci iného objektu. Konkrétne chcem, aby bol môj objekt „gamestate“ oddelený od môjho „GLview Object“ a aby som mohol volať metódy patriace každému objektu zvnútra druhého. Aký je najlepší spôsob, ako to dosiahnuť?

Vopred ďakujem ;)

odpovede:

1 pre odpoveď č. 1

Existuje niekoľko spôsobov, ako to dosiahnuť.

Najviditeľnejšie je, že vaše supertriedy môžu byťdefinované s vlastnosťami odkazujúcimi na ich vlastnosti (podobjekty, ako ich opisujete). Napríklad [[gamestate subObject] doSomething], kde „subObject“ je syntetizovaná vlastnosť smerujúca k objektu, ktorému chcete poslať správu.

Ak chcete voľnejšie spojenie, zvážte použitie vzoru delegovania alebo registrácie pre oznámenia.

Vaše vnorené objekty môžu definovať delegátaprotokolu a vo vhodnom čase ho nazvať metódami delegáta. Ak je iný objekt v súlade s protokolom a je priradený ako delegát, prijme správy.

Nakoniec sa môžu objekty zaregistrovať na zasielanie upozornení.Objekt A môže odosielať oznámenia (napr. „Niečo sa stalo“) a objekt B sa môže zaregistrovať na účely zasielania upozornení (napr. Vykonať metódu X, keď „znova upozorníte“, že sa niečo stalo “).