【发布时间】:2016-05-31 07:12:42
【问题描述】:
我之前使用过 AdMob 来显示横幅广告,并且在这个项目中有效。
现在我不会在游戏结束后显示 AdMob 广告。
这是用 SpriteKit 编写的游戏。
在游戏失败后,我会在我的 GameScene 中这样做:
GameOverScene* gameOverScene = [[GameOverScene alloc] initWithSize:self.frame.size playerScore:_topPoints playerTime:elapsedTime];
SKTransition *transition = [SKTransition fadeWithDuration:2.5];
[self.view presentScene:gameOverScene transition:transition];
这工作正常。
在 GameOverScene.m 中我有:
@interface GameOverScene ()
@property(nonatomic, strong) GADInterstitial *interstitial; // for Ads
@end
@implementation GameOverScene
-(id)initWithSize:(CGSize)size playerScore:(NSUInteger)score playerTime:(CFTimeInterval)elapsedTime;
{
self = [super initWithSize:size];
if (self)
{
// code for hight score just text label, not important
// for adds
[self performSelector:@selector(showBanner) withObject:nil afterDelay:1.5];
}
return self;
}
- (void) showBanner
{
self.interstitial = [[GADInterstitial alloc] init];
self.interstitial.adUnitID = @"ca-app-pub-3940256099942544/4411468910";
GADRequest *request = [GADRequest request];
// Requests test ads on simulators.
request.testDevices = @[ GAD_SIMULATOR_ID ];
[self.interstitial loadRequest:request];
[self performSelector:@selector(showBanner1) withObject:nil afterDelay:1.5];
}
- (void) showBanner1
{
if ([self.interstitial isReady])
{
NSLog(@"EEEEEEEEEEEEEEEEE");
[self.interstitial presentFromRootViewController:(UIViewController *)self];
}
else
{
NSLog(@"NO NO NO NO AD");
[self.interstitial presentFromRootViewController:self];
}
}
这段代码正在执行,但我有以下问题:
[self.interstitial presentFromRootViewController:(UIViewController *)self];
运行时是否出错:
-[GameOverScene presentViewController:animated:completion:]: unrecognized selector sent to instance 0x7fee8b8ceb80
据我了解,我认为存在一些问题,因为 self.interstitial presentFromRootViewController: 期待 RootViewController 但我的 GameOverScene 是 SKScene。
问题
如何在 SKScene 中显示 AdMob 插页式广告?
【问题讨论】:
标签: ios objective-c admob