Mam app iPhone, w którym klasa jest podklasą UIViewController:Jak mogę dziedziczyć niestandardowe klasy z wielu klas nadrzędnych?
Teraz tworzę nową aplikację, w której chcesz ponownego wykorzystania A, ale mają to podklasy z B, co jest w porządku, bo B podklasy z UIViewController:
Ale teraz mam inna klasa, C, który jest podklasą GLKViewController:
Problem pojawia się, gdy próbuję zrobić trzecią aplikację, która re- używa B bez żadnych zmian. Od B dziedziczy z UIViewController, muszę jakoś powiedzieć C że powinien dziedziczyć BizGLKViewController, co uważam, że jest to przypadek wielokrotnego dziedziczenia:
Z tego co czytam najlepiej radzić sobie z kompozycją, ale nie rozumiem, jak najlepiej zastosować ją do mojej sytuacji n.
Jako rozwiązanie Podstawiony, że sobie sprawę, że po prostu utworzyć opakowanie klasy D który można następnie zmodyfikować na podstawie aplikacji, przez aplikacji podklasy z odpowiedniego nadrzędnej do danego zadania:
ale wydaje rodzaj hacky. Czy jest lepszy sposób to zrobić?
Co to jest kontroler UIScrollViewController? – jrturton
Co powiesz na używanie kategorii na UIViewController zamiast jej podklasowania? Ponieważ UIScrollViewController dziedziczy z UIViewController, twoja kategoria byłaby użyteczna także w przypadkach instancji UIScrollViewController. Ow, i naprawdę dobrze napisane pytanie +1 na to! – Till
Nie możesz tego zrobić w Objective-C jest pojedyncze dziedziczenie - jak java użyj paradygmatu kompozycji lub delegacji –