Search code examples
iosobjective-cuiviewcontrollerios7sprite-kit

Simple Sprite Kit Scene setup going wrong


I'm trying to set up a simple Sprite Kit setup. All I'm doing is re-creating the default xCode template 'Sprite Kit Game' from an 'Empty Application'.

It keeps crashing on the skView.showsFPS = YES; line. Which I can't explain. Can you? Thanks!

Some code:

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:    (NSDictionary *)launchOptions
{
  self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
  MenuController *menuController = [[MenuController alloc] init];
  self.window.rootViewController = menuController;
  [self.window makeKeyAndVisible];
  return YES;
}

MenuController.m

- (void)viewDidLoad
{
  [super viewDidLoad];

  SKView *skView = (SKView *)self.view;
  skView.showsFPS = YES;
  skView.showsNodeCount = YES;

  MultiplayerView *gameView = [MultiplayerView sceneWithSize:skView.bounds.size];
  gameView.scaleMode = SKSceneScaleModeAspectFill;

  [skView presentScene:gameView];
}

When I launch this, the following error occurs:

2013-11-10 13:08:01.605 ByS[9419:70b] -[UIView setShowsFPS:]: unrecognized selector sent to instance 0x10c00bc60
2013-11-10 13:08:01.608 ByS[9419:70b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView setShowsFPS:]: unrecognized selector sent to instance 0x10c00bc60'

Solution

  • In the interface builder, change the class of the window's view to SKView. Type-casting a UIView into SKView won't do anything unless the UIView was previously obtained by casting a SKView.