Using Xcode 5 and the 10.9 SDK or the iOS 7 SDK you can take advantage of the new compiler feature Modules.

The current #include/#import model for including Framework headers is both  inefficient and fragile. Fragile because if you #define a macro before including/importing a header file that macro can modify the interpretation of the Framework headers and if that macro is defined in some source files and not others the interpretation of the Framework header files will be different depending on source files including the framework.

The model is inefficient because each source file includes system framework headers which are hundreds of files each with many lines of code to be interpreted. Pre-compiled headers can be used to minimise the damage that this causes in terms of build times but to get smaller build times then it is necessary to keep up to date with maintaining your pre-compiled header files.

Modules sorts out the fragility problem and removes any concern about interdependency and the order in which various framework header are included. Modules achieves reductions in build times better than that of manual maintenance of your pre-compiled header files without having to do the work. Modules also dramatically reduces the amount of time Xcode needs for indexing.

You can also take advantage of modules Auto-linking feature so that once a Framework is referenced in a source file it is automatically added to the target for linking.

Modules are not available for user frameworks.

To enable Modules in your project or target you turn on the modules build setting “Enable Modules (C and Objective C)” in the “LLVM 5.0 – Language – Modules” section. You can also turn the Link Frameworks Automatically on and off independently of the enable modules build setting.

With modules enabled the usual way of including a Framework of doing #import <Framework/Framework.h> still works, but you should use the new keyword:

@import Cocoa

If you don’t need to you can just import part of a Framework and you do that by:

@import Cocoa.NSView

which would behave the same as importing.

#import <Cocoa/NSView.h>