title: Forward declare a Swift class to use it in an Objective-C header
body: <p>I'm trying to import a Swift class into an Objective-C header file. I know that <code>Project-Swift.h</code> bridge can only be imported into implementation files (.m) but I've got an Objective-C header that needs to declare a property that's defined in Swift.</p>
  
  <p>I read somewhere that this can be done by forward declaring the class in the header file and importing <code>Project-Swift.h</code> into the implementation file. When I do this, the errors are resolved, but I can't access any class properties.</p>
  
  <p>Example:</p>
  
  <pre><code>// Square.swift
  
  @objc class Square: NSObject {
    var width: Int?
    var height: Int?
  }
  
  // Shapes.h
  
  @class Square;
  
  @interface Shapes: NSObject {
    @property(nonatomic, strong) Square *square;
  }
  
  // Shapes.m
  
  #import "Shapes.h"
  #import "Product-Swift.h"
  
  @implementation Shape
  
  @end
  
  // Somewhere else in the code
  
  Shapes *shapes = [Shapes new];
  NSLog(@"%@", @(shapes.square.width)); &lt;-- Property 'width' not found on object of type 'Square *'
  </code></pre>
  
  <p>Anyone can offer an advice on how to access the Swift class and its properties ?</p>