title: Call Objective-C block stored in NSDictionary from Swift
body: <p>Intended Result: I create a block, store it in an NSDictionary, pass the dictionary to a Swift class, retrieve the block from the dictionary, and call the block.</p>
  
  <p>Actual Result: Retrieving the block from the dictionary results in an EXC_BAD_INSTRUCTION.</p>
  
  <p>Sample Code Obj-C View Controller:</p>
  
  <pre><code>- (void)viewDidLoad {
      [super viewDidLoad];
  
      void (^completionHandler)() = ^() {
          [self printBlahBlah];
      };
  
      NSDictionary *dict = @{@"blah":completionHandler};
      Nav *nav = [Nav new];
      [nav done:dict];
  }
  
  -(void)printBlahBlah { NSLog(@"BlahBlah"); }
  </code></pre>
  
  <p>Sample Code from Nav Swift class:</p>
  
  <pre><code>@objc public class Nav : NSObject {
  
      @objc public func done(dict: NSDictionary){
          let block = dict["blah"] as! ()-&gt;Void //EXC_BAD_INSTRUCTION
          block()
      }
  }
  </code></pre>