title: Error Could not cast value of type UIView to SKview
body: <p>Ever since i added in iAds i keep getting this error. "could not cast value of type 'UIView' (0x196afa530) to 'SKView' (0x19685f560)."</p>
  
  <p>this is the code that fails and the code on the bottom is my inter view controller code.. which is not much.
  i think at also has something to do with this code for iAds.</p>
  
  <pre><code>    var interstitialAdView: UIView = UIView()
  </code></pre>
  
  <p>Code:   </p>
  
  <pre><code> override func viewWillLayoutSubviews() {
      super.viewWillLayoutSubviews()
      if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
           let skView = self.view as! SKView
          self.canDisplayBannerAds = true
              skView.showsFPS = false
              skView.showsNodeCount = false
              skView.ignoresSiblingOrder = true
              scene.scaleMode = .AspectFill
              let scene: SKScene = GameScene(size: skView.bounds.size)
              skView.presentScene(scene)
         }
      }
  </code></pre>
  
  <p>All ViewController code: </p>
  
  <pre><code>  import UIKit
    import StoreKit
    import SpriteKit
    import GameKit
    import iAd
  
   extension SKNode {
  class func unarchiveFromFile(file : String) -&gt; SKNode? {
      if let path = NSBundle.mainBundle().pathForResource(file, ofType: "sks") {
          var sceneData = NSData(contentsOfFile: path, options: .DataReadingMappedIfSafe, error: nil)!
          var archiver = NSKeyedUnarchiver(forReadingWithData: sceneData)
  
          archiver.setClass(self.classForKeyedUnarchiver(), forClassName: "SKScene")
          let scene = archiver.decodeObjectForKey(NSKeyedArchiveRootObjectKey) as! GameScene
          archiver.finishDecoding()
          return scene
      } else {
          return nil
      }
    }
  
  }
  
  class GameViewController: UIViewController, ADInterstitialAdDelegate{
  var interstitialAd:ADInterstitialAd!
  
  var interstitialAdView: UIView = UIView()
  override func viewDidLoad() {
      super.viewDidLoad()
  
  
      loadInterstitialAd()
  
      ADBannerView()
  
  
      func gameCenterViewControllerDidFinish(gameCenterViewController: GKGameCenterViewController!)
      {
          gameCenterViewController.dismissViewControllerAnimated(true, completion: nil)
      }
  
  
  
  
      var localPlayer = GKLocalPlayer()
  
      localPlayer.authenticateHandler = {(viewController, error) -&gt; Void in
  
          if (viewController != nil) {
              let vc: UIViewController = self.view!.window!.rootViewController!
              vc.presentViewController(viewController, animated: true, completion: nil)
          }
  
          else {
              println((GKLocalPlayer.localPlayer().authenticated))
  
          }
      }
  
  
  
  
  
  }
  override func viewWillLayoutSubviews() {
      super.viewWillLayoutSubviews()
      if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
           let skView = self.view as! SKView
          self.canDisplayBannerAds = true
              skView.showsFPS = false
              skView.showsNodeCount = false
              skView.ignoresSiblingOrder = true
              scene.scaleMode = .AspectFill
              let scene: SKScene = GameScene(size: skView.bounds.size)
              skView.presentScene(scene)
  
  
  
    }
  
  }
  
  
  
  override func shouldAutorotate() -&gt; Bool {
      return true
  }
  
  override func supportedInterfaceOrientations() -&gt; Int {
      if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
          return Int(UIInterfaceOrientationMask.AllButUpsideDown.rawValue)
      } else {
          return Int(UIInterfaceOrientationMask.All.rawValue)
      }
  }
  
  override func didReceiveMemoryWarning() {
      super.didReceiveMemoryWarning()
      // Release any cached data, images, etc that aren't in use.
  }
  
  override func prefersStatusBarHidden() -&gt; Bool {
      return true
  }
  
  func loadInterstitialAd() {
  
      interstitialAd = ADInterstitialAd()
  
      interstitialAd.delegate = self
  
  
  
  
  
       }
  
  
  
  func interstitialAdWillLoad(interstitialAd: ADInterstitialAd!) {
  
  
  
  }
  
  
  
  func interstitialAdDidLoad(interstitialAd: ADInterstitialAd!) {
  
  
  
  
  
  
  
      interstitialAdView = ADBannerView()
  
      interstitialAdView.frame = CGRectZero
  
      self.interstitialAdView.frame = CGRectMake(0, self.view.frame.size.height-self.interstitialAdView.frame.size.height, self.interstitialAdView.frame.size.width, self.interstitialAdView.frame.size.height)
  
      interstitialAdView.backgroundColor = UIColor.clearColor()
  
      self.view .addSubview(interstitialAdView)
  
  
  
  
  
      interstitialAd.presentInView(interstitialAdView)
  
      UIViewController.prepareInterstitialAds()
  
  }
  
  
  
  func interstitialAdActionDidFinish(interstitialAd: ADInterstitialAd!) {
  
      interstitialAdView.removeFromSuperview()
  
  
  
  }
  
  
  
  func interstitialAdActionShouldBegin(interstitialAd: ADInterstitialAd!, willLeaveApplication willLeave: Bool) -&gt; Bool {
  
      return true
  
  }
  
  
  
  func interstitialAd(interstitialAd: ADInterstitialAd!, didFailWithError error: NSError!) {
      println(" iAds Did Fail with Error")
  
  
  }
  
  
  
  func interstitialAdDidUnload(interstitialAd: ADInterstitialAd!) {
  
      interstitialAdView.removeFromSuperview()
  
  }
  
  
  
     }
  </code></pre>