Если вы хотите, чтобы это было для iOS, просто позвоните:
[[[UIApplication sharedApplication] delegate] doSomething];
должен это сделать. На Mac OS вы используете NSApplication
вместо.
Поскольку ваш делегат приложения не является (не так ли) суперклассом вашего контроллера основного представления, вы не можете сделать это, как в вашем вопросе.
Но также, лучше путь должен быть:
[[UIApplication sharedApplication] sendAction:@selector(doSomething)
to:nil
from:self];
Таким образом (с указанием nil
в качестве получателя) сообщение действия будет проходить через цепочку респондента и, наконец, будет обработано вашим делегатом приложения, если ни один из объектов респондента не сможет с ним справиться. Также этот способ предотвращает вы не можете ссылаться на делегата приложения непосредственно в пользовательском контроллере представления.
Здесь - документ для получения дополнительной информации об этом методе.