Для маленьких кусочков кода контроллера, которые имеют отношение ко всему приложению, я использую AppDelegate. Если есть разумный способ разделить код на отдельный объект контроллера, то это было бы предпочтительнее, поскольку я видел делегатов приложения, которые раздулись до неуправляемого размера.
Это также может быть хорошим способом «однотонизации» объектов контроллера без прожига ваших мостов, если вы захотите позже иметь более одного из них.
Я на самом деле поместил метод класса в AppDelegate для доступа к нему, чтобы я мог делать такие вещи, как:
[[AppDelegate get].dataStore getRecordNumber:x] // or
[[AppDelegate get].server refreshData]
Но я уверен, что есть те, кто считает, что это плохой дизайн в условиях команды.