I am new to programming in Swift and I have reached a blocker in constructing a Factory design pattern. Below is my code:

```
protocol IInterface {
   func InterfaceMethod() -> Void
}

public class SubClass: IInterface {
   init() {}

   func InterfaceMethod() { }

   public func SubClassMethod() { }
}

public class Factory() {
    class func createFactory() -> IInterface {
         return SubClass()
    }
}

```

Finally, i am trying to access it like below

```
let mgr = Factory.createFactory()

//calling Interface Method
mgr.InterfaceMethod() -- This works, when i keep a dot (mgr.) it shows the method name
//calling subclass method
mgr.SubClassMethod() -- This doesn't work, when i keep a dot (mgr.) it doesnt even show the subclass method name

```

Even if i use `mgr.SubClassMethod`, it throws error saying 

> 
> Value of type IInterface has no member SubClassMethod
> 
> 
> 

I believe i am getting exposed only with protocol methods though a SubClass object is returned via factory

All the examples I browsed and have seen shows only how to consume methods specified by the protocol, but i haven't seen an example where it shows how to consume a subclass's own methods apart from protocols methods