title: Allocating a new swift class object with nil property returning me nil object
body: <p>Am trying to create a new swift class object from objective C as well as from a swift class, in which the initializer parameter is optional.</p>
  
  <p>This is the class which I am trying to initialise,</p>
  
  <pre><code>@objc
  public class ClassStatus: NSObject {
     public private(set) var prop1: DemoClass?
     public private(set) var prop2: DemoClass2?
  
     public override var description: String {
         return "\(prop1)"
     }
  
     public init(prop: DemoClass?) {
        super.init()
        self.prop1 = prop
     }
  
     public convenience init(propA: DemoClass?, propB: DemoClass2) {
         self.init(prop: propA)
         self.prop2 = propB
      }
  }
  </code></pre>
  
  <p>From Swift,</p>
  
  <pre><code>let statusObj = ClassStatus(prop: nil)
  </code></pre>
  
  <p>From Objective-C</p>
  
  <pre><code>ClassStatus *connState = [[ClassStatus alloc]initWithProp:nil];
  </code></pre>
  
  <p>Why the object created is nil in both the cases, instead of returning me a valid object with the intended property as nil.</p>
  
  <p>EDIT::
  Printing the object will give you as nil. Here, am actually trying to work with the object, and looking for the property in the object whether it is nil or valid, based on which I will proceed further. The case here is, why the object is turning up as nil instead of the creating a valid object with the property as nil.</p>
  
  <p>EDIT 2: this is not a valid question, as the result for the nil is actually happening because of overriding of the description method. The object creation happens as is.</p>