The scene
method is not being called because you initialize the object using:
[[GameLayer alloc] init]];
If you use
[GameLayer scene];
instead the method will be called and you can also omit the cast to CCScene
:
[[CCDirector sharedDirector] replaceScene:[GameLayer scene]];