Изменения в новых версиях / Objective-C 2013: Modules

// *** before: ***
// a framework was taken whole through its umbrella header, and there was no
// way to say that only one class was needed
#import <UIKit/UIKit.h>

// importing a single header of a framework was often forbidden outright:
#import <UIKit/UIView.h>
// error: UIView.h must not be included directly, use <UIKit/UIKit.h>

// *** in version 2013: ***
// every header of a framework is a submodule and may be imported by itself
@import UIKit;                 // the whole framework
@import UIKit.UIView;          // one part of it
@import Foundation.NSString;

@interface Badge : UIView
@end

// the dotted name is the module and the header inside it. Importing a
// submodule does not make the build slower than importing the whole
// framework, because both are read from the same compiled description -
// it is a matter of saying precisely what the file depends on