2012-01-01 3 views
3

Каждое приложение имеет делегат приложения.Где делегат приложения зарегистрирован в нашем приложении Cocoa/Cocoa-touch

Где в коде, который мы указываем/регистрируем, что «SomeClass» (подкласс UIApplicationDelegate) является делегатом моего приложения?

+4

Это не подкласс 'UIApplicationDelegate'. Это класс, который соответствует протоколу 'UIApplicationDelegate' – albertamg

+2

Plus, для nitpick это не класс, который является делегатом, а _instance_ класса. – Monolo

ответ

4

Если вы используете раскадровки, это делается в main.m с линией:

UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 

Если четвертый аргумент UIApplicationMain() не nil, функция будет создавать экземпляр указанного класса и присвоить его как делегат объекта UIApplication.

Если вы не используете раскадровки, подключение производится в MainWindow.xib, где создан и подключен в качестве делегата от самого файла владельца (который является UIApplication экземпляром, который, в свою очередь, создается с помощью функции UIApplicationMain() объект приложения делегата).

+0

Это делается с помощью 'UIApplicationMain', независимо от того, используете ли вы раскадровки. Я не уверен, когда произошло изменение, но с Xcode 4.2.1 ни один из шаблонов Cocoa Touch не использовал основной нить. –

0

Это, как я считаю, делегат приложения для моих приложений ...

MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate]; 

Имя класса для приложения делегата это просто название вашего приложения с последующим «AppDelegate». Вы увидите этот класс в списке файлов для своего проекта, но он создается автоматически. Просто найдите файл «MyAppDelegate.m».

Этот класс назначен обязанностям делегатов в приложении MainWinodw.xib для «оконных» приложений. Если вы не используете окно-приложение, вы, вероятно, найдете назначение в вызове UIApplicationMain в файле «main.m».

+0

Где мы указываем, что 'MyAppDelegate' является главным делегатом нашего приложения – Anand

+0

Извините, я разъяснил это выше. Но я вижу, что Оле просто сказал то же самое ниже, пока я редактировал! В любом случае, надеюсь, что вы нашли нужную вам информацию. – EFC

+0

спасибо. Я получил их – Anand

Смежные вопросы