title: How to make struct and typealias conform to @objc
body: <p>Is it possible to make a <code>struct</code> and/or <code>typealias</code> conform to <code>@objc</code>? I wish to create optional protocol functions, one returns a <code>struct</code>, the other a <code>typealias</code>. </p>
  
  <pre><code>public typealias SwiperData = (image: UIImage, title: String)
  
  public struct SwiperPeekViewControllers{
    public var parentViewController: UIViewController!
    public var contentViewController: UIViewController!
    public init(parentVC: UIViewController, contentVC: UIViewController){
      parentViewController = parentVC
      contentViewController = contentVC
    }
  }
  </code></pre>
  
  <p><strong>protocol</strong></p>
  
  <pre><code>    @objc public protocol SwiperPeekViewDelegate: class{
        func didUndoAction(index: Int, dataSource: SwiperData) 
  // Method cannot be a member of an @objc protocol because the type of the parameter 2 cannot be represented in Objective-C
        func swiperPeekViewControllers()-&gt;SwiperPeekViewControllers
        func swiperPeekViewSize()-&gt;CGSize
      }
  </code></pre>