The #import directive was added to Objective-C as an improved version of #include. Whether or not it's improved, however, is still a matter of debate. #import ensures that a file is only ever included once so that you never have a problem with recursive includes. However, most decent header files protect themselves against this anyway, so it's not really that much of a benefit.
What is the difference between #import and #include in Objective-C? :
#include and #import request that the preprocessor* read a file and
add it to its output. The difference between #include and #import is
that
#include allow you to include the same file many times. #import
ensures that the preprocessor only includes a file once. C
programmers tend to use #include. Objective-C programmers tend to use
#import.
* Compiling a file in Objective-C is done in two passes. First,
the preprocessor runs through the file. The output from the
preprocessor goes into the real compiler.