如何在AppDelegate类中向BOOL返回YES?

时间:2014-04-09 11:24:37

标签: ios objective-c chartboost

我已经在我的第一个应用程序上工作了几个月,并且在我将其发送到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?

3 个答案:

答案 0 :(得分:0)

1)您创建了一个Chartboost对象并为其设置了委托。

Chartboost *cb = [Chartboost sharedChartboost];
cb.delegate = self;  

2)自我,如果代表需要实施shouldDisplayInterstitial方法

- (BOOL)shouldDisplayInterstitial:(NSString *)location
{
    return YES;
}

请参阅example project here

答案 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;
}

参考此示例

https://github.com/ChartBoost/client-examples/blob/master/iOS/ChartboostExample/ExampleAppAppDelegate.m

Chartboost in iphone project / Chartboost usage in iOS