Форум программистов, компьютерный форум, киберфорум
Наши страницы

Swift

Войти
Регистрация
Восстановить пароль
 
 
Korefey
0 / 0 / 0
Регистрация: 03.03.2012
Сообщений: 11
#1

Swift: Как определить в классе-родителе, какой дочерний класс его вызвал - Swift

25.07.2016, 15:24. Просмотров 1018. Ответов 17
Метки нет (Все метки)

Ув. форумчане, нужна помощь.
Не могу найти нормальное решение сложившеся проблеммы.
У меня есть три класса.

class Main: Object {

}

class name1: Main {
}

class name2: Main {
}

Необходимо определить в классе Main, из каким дочерним классом он был вызван.
Как корректно это можно сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2016, 15:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Swift: Как определить в классе-родителе, какой дочерний класс его вызвал (Swift):

Класс наследник в классе родителе - C++ Builder
Здравствуйте! Суть проблемы: Есть предположим класс TObj: class TObj { public: int X,Y;

Как в определить какой объект вызвал исключение? - C#
Как определить на каком объекте сработала ловушка? try { this.BindingSource1.EndEdit(); ...

Как определить какой объект вызвал событие - C# WPF
Здравствуйте! Хотел бы узнать, как определить какой объект вызвал событие? Например у нас есть 10 картинок (Image1, Image2.......

Как определить какой из CheckBox'ов вызвал событие CheckedChanged? - Visual Basic .NET
Чекбоксы созданы программно, список имен чекбоксов берется из Excel файла вот код: Dim ChkBox As CheckBox Dim point As...

.NET 4.x Определить, какой элемент управления вызвал событие - Visual Basic .NET
Всем здравствуйте! Есть такой момент: Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click,...

Не зарегистрирован класс. Какой класс и как его зарегистрировать? - C# ASP.NET
Решил освоить ASP. Поставил на XP Prof IIS. Запускаю его. В inetpub/wwwroot кладу скриптец test.asp: <HTML> <HEAD> ...

17
cin_cout
26 / 26 / 7
Регистрация: 06.10.2012
Сообщений: 119
02.08.2016, 23:24 #16
Цитата Сообщение от Vorona Посмотреть сообщение
А вот это уже страшно и ни по "джавовски" и ни по "свифтовому", а просто страшно, т.к. так жестко привязываться к конкретному типу используя is, это вообще мрак
Чем же это страшно?
0
Vorona
Peace 2 all shining faces
671 / 533 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
02.08.2016, 23:29 #17
жесткой привязкой к конкретному типу, потерей всех преимуществ полиморфизма

зачем вам проверять тип, если можно нужным образом реализовать протокол или переопределить метод родителя в наследнике, получая динамическую реализацию в рантайме, а не на этапе компиляции

на этом принципе основаны такие паттерны как декоратор или прокси - подстановка любой имплементации и получение любого поведения используя единый протокол

почитайте gof или head first design patterns, там круто это объясняется
0
kabudasay
3 / 3 / 1
Регистрация: 13.04.2015
Сообщений: 51
03.08.2016, 07:14 #18
раздули демагогию уууууу
0
03.08.2016, 07:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.08.2016, 07:14
Привет! Вот еще темы с ответами:

.NET 4.x Как узнать какой элемент вызвал ContextMenuStrip - C#
На форме есть 5 текстовых полей и 1 ContextMenuStrip. причем команды для полей у всех ContextMenuStrip одинаковые. Решил оставить только...

Как узнать, какой компонент вызвал форму? - Lazarus
Программа будет использоваться на компьютере с сенсорным монитором (мышки и клавиатуры не будет). Пользователю в процессе работы на 1-й и...

.NET 4.x Как узнать какой Button вызвал метод - C#
На форме несколько кнопок, которые вызывают один и тот же метот, допустим такой: void METOD() { MessageBox.Show(" Здесь должно...

Как узнать, какой контролл вызвал событие - C#
У меня есть 12 panel'ей. Они объединены в массив. Как бы мне сделать так, чтобы при нажатии на i-ую панель вылезало, ну, к примеру, "Hello,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru