As per Apple documentation : 
@class allows you to declare that a symbol is an Objective-c class
  name without the need to #import the header file that defines the
  class.
You would use this where you only need the class name defined for the
  purposes of declaring a pointer to the class or a method parameter of
  the class, and you do not need to access any methods, fields, or
  properties in the class.
It saves a minuscule amount of compile time vs the #import, and it
  sometimes helps avoid messy include circularity issues.
Great answer from here
for example when you creat a protocol:
@class yourCustomView;
@protocol yourCustomViewDelegate <NSObject>
@required
- (void) somethingDidInView:(UIView*)view;
@end
@interface yourCustomView : FIView