Acesso global elegante para App Delegate

Eu sei, eu sei … acessar o delegado do aplicativo globalmente nem sempre é uma boa ideia, mas às vezes é a coisa certa a fazer. Esta é uma maneira fácil e elegante de acessá-lo de qualquer arquivo em nosso projeto:

AppDelegate.h

#import <UIKit/UIKit.h>

#define ApplicationDelegate ((MyAppDelegate *)[UIApplication sharedApplication].delegate)

@interface MyAppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;
@property (copy, nonatomic) NSString* aString;

@end

Qualquer outro arquivo do projeto

NSString* myString = ApplicationDelegate.aString;