我已经在我的第一个应用程序上工作了几个月,并且在我将其发送到App Store之前需要添加广告的阶段。我已经成功添加了iAD,并且正在尝试配置Chartboost。
当我试图阻止Chartboost在游戏的某些部分显示插页式广告时,我遇到了问题。我根据Chartboost网站和Chartboost.h文件中的文档设置了位置:
// Return NO if showing an interstitial is currently inappropriate, for example if the user has entered the main game mode
- (BOOL)shouldDisplayInterstitial:(NSString *)location;
很抱歉,如果这听起来像是一个愚蠢的问题,但我一直在搜索我的iOS书和网上的答案,我相信这很简单。如何从另一个类返回YES(BOOL)shouldDisplayInterstitial。 I.E来自我的GameViewController.m?
答案 0 :(得分:0)
1)您创建了一个Chartboost
对象并为其设置了委托。
Chartboost *cb = [Chartboost sharedChartboost];
cb.delegate = self;
2)自我,如果代表需要实施shouldDisplayInterstitial
方法
- (BOOL)shouldDisplayInterstitial:(NSString *)location
{
return YES;
}
答案 1 :(得分:0)
通过授权。如果您需要声明shouldDisplayInterstitial:
的课程无法回答问题,那么应该问一个可以的课程:
- (BOOL) shouldDisplayInterstitial: (NSString *)location
{
return [self.delegate shouldDisplayInterstitial:location];
}
您的代表应符合特定协议并实施该方法。
有关授权的更多信息,请here。
答案 2 :(得分:0)
如何从其他课程返回YES / No?
1.Delegate是件事。将Chartboost的委托设置为您的GameViewController类
Chartboost *cb = [Chartboost sharedChartboost];
cb.delegate = self;//Specify your GameViewController object instead of self;
2.在您的课程中实施该方法
- (BOOL)shouldDisplayInterstitial:(NSString *)location
{
return YES;
}
最佳做法:Source
首次体验
只有在用户第一次玩游戏后才能显示插页式广告,这是很好的做法(并在iOS人机界面指南中注明)。
您可以使用以下Chartboost SDK委托方法阻止插页式广告直到第二个startSession:
- (BOOL)shouldRequestInterstitialsInFirstSession {
return NO;
}
参考此示例