这是我的GameVIEwController中Admob的代码:
- (voID)vIEwDIDLoad {[super vIEwDIDLoad]; //addInterstitial self.interstitial = [[GADInterstitial alloc] initWithAdUnitID:@"ca-app-pub-XXXXXXXXXX/XXXXXXXXXX"]; GADRequest *request = [GADRequest request]; request.testDevices = @[@"XXXXXXXXXXXXXXXXXXXXXXXXXX"]; [self.interstitial loadRequest:request]; [[NSNotificationCenter defaultCenter]addobserver:self selector:@selector(handleNotification:) name:@"showAd" object:nil]; } - (voID)handleNotification:(NSNotification *)notification { if ([notification.name isEqualToString:@"showAd"]) { if ([self.interstitial isReady]) { [self.interstitial presentFromrootVIEwController:self]; }
更新:
我在GameVIEwController中有这个代码:
- (voID)vIEwDIDLoad { [super vIEwDIDLoad]; //addInterstitial if ([[NSUserDefaults standardUserDefaults] objectForKey:GAME_AMOUNT_KEY] == nil){ NSNumber *number = [NSNumber numberWithInt:0]; [[NSUserDefaults standardUserDefaults] setobject: number forKey: GAME_AMOUNT_KEY]; [[NSUserDefaults standardUserDefaults] synchronize]; } if ([[[NSUserDefaults standardUserDefaults] objectForKey:GAME_AMOUNT_KEY] intValue] >= 5){ [self callAd]; self.interstitial = [self createAndLoadInterstitial]; NSNumber *number = [NSNumber numberWithInt:0]; [[NSUserDefaults standardUserDefaults] setobject: number forKey: GAME_AMOUNT_KEY]; [[NSUserDefaults standardUserDefaults] synchronize]; }- (voID)handleNotification:(NSNotification *)notification { if ([notification.name isEqualToString:@"showAd"]) { if ([self.interstitial isReady]) { [self.interstitial presentFromrootVIEwController:self]; } }}- (voID) callAd{ [[NSNotificationCenter defaultCenter]addobserver:self selector:@selector(handleNotification:) name:@"showAd" object:nil];}- (GADInterstitial *)createAndLoadInterstitial { self.interstitial = [[GADInterstitial alloc] initWithAdUnitID:MyAdUnitID2]; self.interstitial.delegate = self; GADRequest *request2 = [GADRequest request]; request2.testDevices = @[@"XXXXXXXXXXXXXXXXXXXXXX"]; [self.interstitial loadRequest:request2]; return self.interstitial;}- (voID)interstitialDIDdismissScreen:(GADInterstitial *)interstitial { self.interstitial = [self createAndLoadInterstitial];}
在GameScene.m中这段代码:
- (voID)showGameOver{ //addInterstitial int score = [[[NSUserDefaults standardUserDefaults] objectForKey:GAME_AMOUNT_KEY] intValue]+1; NSNumber *newNumber = [NSNumber numberWithInt:score]; [[NSUserDefaults standardUserDefaults] setobject:newNumber forKey:GAME_AMOUNT_KEY]; [[NSUserDefaults standardUserDefaults] synchronize]; [[NSNotificationCenter defaultCenter] postNotificationname:@"showAd" object:nil];解决方法 使用NSUserDefaults:
- (voID) callAd{ // Code to call your ad here}- (voID) vIEwDIDLoad{// If you haven't played yet,sets to 0 if ([[NSUserdefaults standardUserDefaults] objectForKey:GAME_AMOUNT_KEY] == nil){ NSNumber *num = [NSNumber numberWithInt:0]; [[NSUserDefaults standardUserDefaults] setobject: num forKey: GAME_AMOUNT_KEY]; [[NSUserDefaults standardUserDefaults] synchronize]; }// If you have played if ([[[NSUserdefaults standardUserDefaults] objectForKey:GAME_AMOUNT_KEY] intValue] >= 5){ [self callAd]; // ad is called NSNumber *num = [NSNumber numberWithInt:0]; [[NSUserDefaults standardUserDefaults] setobject: num forKey: GAME_AMOUNT_KEY]; [[NSUserDefaults standardUserDefaults] synchronize]; // resets to zero }}
每当游戏结束时:
int score = [[[NSUserdefaults standardUserDefaults] objectForKey:GAME_AMOUNT_KEY] intValue] + 1;NSNumber *newNumber = [NSNumber numberWithInt:score];[[NSUserDefaults standardUserDefaults] setobject:newNumber forKey: GAME_AMOUNT_KEY];[[NSUserDefaults standardUserDefaults] synchronize]; // Sets to new value
关键可以是真的.在.m文件的顶部放置:
#define GAME_AMOUNT_KEY @"Game Amount Key"
UPDATE
更改:
- (voID)handleNotification:(NSNotification *)notification { if ([notification.name isEqualToString:@"showAd"]) { if ([self.interstitial isReady]) { [self.interstitial presentFromrootVIEwController:self]; }
至:
- (voID)handleNotification:(NSNotification *)notification { if ([notification.name isEqualToString:@"showAd"]) { if ([self.interstitial isReady]) { if ([[[NSUserDefaults standardUserDefaults] objectForKey:GAME_AMOUNT_KEY] intValue] >= 5){ [self.interstitial presentFromrootVIEwController:self]; NSNumber *number = [NSNumber numberWithInt:0]; [[NSUserDefaults standardUserDefaults] setobject: number forKey: GAME_AMOUNT_KEY]; [[NSUserDefaults standardUserDefaults] synchronize]; } }
并更改(在VIEwDIDLoad中):
if ([[[NSUserDefaults standardUserDefaults] objectForKey:GAME_AMOUNT_KEY] intValue] >= 5){ [self callAd]; self.interstitial = [self createAndLoadInterstitial]; NSNumber *number = [NSNumber numberWithInt:0]; [[NSUserDefaults standardUserDefaults] setobject: number forKey: GAME_AMOUNT_KEY]; [[NSUserDefaults standardUserDefaults] synchronize]; }
至
[self callAd]; self.interstitial = [self createAndLoadInterstitial];总结
以上是内存溢出为你收集整理的ios – AdMob Interstitial每五场比赛全部内容,希望文章能够帮你解决ios – AdMob Interstitial每五场比赛所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)