Я заметил, что при создании нового проекта с шаблоном iPhone Master-Detail в Xcode 4.2 beta 4 он делает:
// AppDelegate.h @interface AppDelegate : UIResponder <UIApplicationDelegate>
Почему AppDelegate наследуется от UIResponder вместо NSObject?
AppDelegate
UIResponder
NSObject
С Преобразование в раскадровки Примечания к выпуску :
Примечание. В текущих шаблонах Xcode класс делегата приложения наследуется от UIResponder.Это сделано для того, чтобы экземпляр делегата мог участвовать в цепочке респондента и таким образом обрабатывать действия на уровне приложения.Если вы не использовали этот шаблон в существующем приложении, нет необходимости применять его для раскадровок.
Проверьте документацию UIResponder.Поскольку AppDelegate может реагировать на сенсорные события, он реализует интерфейс UIResponder.
UIResponder - базовый класс для инфраструктуры UIKit. UIResponder может иметь дело с событиями.
Ваш класс AppDelegate является классом делегата для UIApplication, который UIApplicationMain создает. AppDelegate соответствует протоколу UIApplicationDelegate.
UIApplication
UIApplicationMain
UIApplicationDelegate
Класс UIResponder имеет методы для получения окна фокуса приложения, на котором будут заполнены все представления, поэтому у вас должен быть класс, который наследуется от UIResponder, чтобы сделать окно ключом.
AppDelegate наследуется от UIResponder, который обрабатывает события iOS.Класс UIResponder определяет интерфейс для объектов, которые отвечают на события и обрабатывают их.
Полагаю, это так, что у него есть доступ к глобальному менеджеру отмены действий.
ОБНОВЛЕНИЕ: мой ответ ниже может быть неправильным.Я просто шел по изображению в документации iOS.Но, это должно быть устаревшим.
Если в iOS 5 нет чего-то нового и еще не задокументировано, то я думаю, что это опечатка с этим шаблоном Xcode 4.2 beta 4.В приложении iOS делегат приложения должен иметь подкласс NSObject, а не UIResponder, например:
@interface AppDelegate : NSObject <UIApplicationDelegate>
Для приложений iOS, в UIKit (для Cocoa Touch, например, iPhone и iPad), UIApplication - последний респондент в цепочке респондентов .
Для приложений Mac OS X, в наборе приложений (для какао, например, Mac) делегат приложения является последнимреспондент в цепочке респондентов .