2

我已经为我的第一个应用程序工作了几个月,并且正处于需要在将其发送到应用程序商店之前添加广告的阶段。我已成功添加 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。来自我的 GameViewController.m 的 IE?

4

3 回答 3

0

我如何从其他班级返回是/否?

1.代表是重要的。将 Chartboost 的委托设置为您的 GameViewController 类

Chartboost *cb = [Chartboost sharedChartboost];
cb.delegate = self;//Specify your GameViewController object instead of self;

2.在你的类中实现方法

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

最佳实践:来源

首次运行体验

仅在用户第一次玩游戏后才显示插页式广告是一种很好的做法(并在 iOS 人机界面指南中注明)。

您可以使用以下 Chartboost SDK 委托方法来阻止插页式广告,直到第二个 startSession:

- (BOOL)shouldRequestInterstitialsInFirstSession {
    return NO;
}

参考这个例子

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

iphone 项目中的 Chartboost / iOS 中的 Chartboost 使用

于 2014-04-09T11:41:47.287 回答
0

通过委托。如果你需要声明的类shouldDisplayInterstitial:不能回答问题,它应该问一个可以:

- (BOOL) shouldDisplayInterstitial: (NSString *)location
{
    return [self.delegate shouldDisplayInterstitial:location];
}

您的委托应符合特定协议并实现该方法。

更多关于委派的信息可以在这里找到。

于 2014-04-09T11:36:41.103 回答
0

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

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

2) Self 如果需要实现shouldDisplayInterstitial方法的委托

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

在此处查看示例项目

于 2014-04-09T11:28:27.760 回答