Во-первых, ваш 0% -й коэффициент принятия даже для вопросов месяцев назад слишком плохо , и вы должны исправить это как можно скорее, чтобы люди с большей вероятностью отвечали на ваши будущие вопросы.
Даже если вы не упомянули, какой язык программирования вы используете, в парадигме ОО нет способа обратиться к создателю объекта, если вы ничего не сделаете с ним.
Раствор 1
Если вы можете, сделайте так, чтобы ваш конструктор принял параметр creator или parent , который передается как this объектом, который создает новый экземпляр вашего учебный класс. Вы должны иметь полный контроль над создателем и созданным.
Решение 2
Возможно, не подходит для вашего случая на 100%, но это шаблон factory . В общем случае фабрика - это одноэлементный класс, поэтому все объекты, созданные фабрикой, должны иметь средства доступа к экземпляру фабрики. Вы можете смешать его с раствором 1.
Раствор 3
Отражение. В зависимости от вашего языка программирования, когда вызывается ваш конструктор, вы можете попытаться проанализировать трассировку стека и попытаться получить ссылку на объект, вызвавший ваш метод.
Раствор 4
Принять шаблон Контейнер . Если вы можете отказаться от концепции создатель , вы можете, по крайней мере, как это делают WinForms и WebForms, рассматривать элемент управления как контейнер других элементов управления. Таким образом, у вас есть двойная ссылка из объекта-контейнера на все содержащиеся в нем объекты и обратная ссылка (устанавливается после конструктора с определенным методом установки / * property *). Таким образом, вы получите не ссылку на объект, который создал ваш, но ссылку на объект, который содержит ваш. Опять же, вы должны иметь полный контроль над кодом.
Я бы пошел на решение 1 или 4, если бы я был тобой
[Редактировать]: когда я впервые написал ответ, я не мог прочитать, что вы используете Objective-C. Я не эксперт в этом, я не знаю, есть ли лучшее решение, но мое (возможно, кроме 3) возможно