iOS上的RevMob全屏广告崩溃
如果我点击一个全屏广告,并在广告打开Safari或AppStore之前关闭它,应用程序会崩溃,错误如下:iOS上的RevMob全屏广告崩溃,ios,cocos2d-iphone,revmob,Ios,Cocos2d Iphone,Revmob,如果我点击一个全屏广告,并在广告打开Safari或AppStore之前关闭它,应用程序会崩溃,错误如下: [RevMob] Initializing Fullscreen. [RevMob] Ad received: (200). [RevMob] Fullscreen clicked. [RevMob] Loading iTunes url. [RevMob] Fullscreen closed. [RevMob] Opening iTunes. ***** Terminating app
[RevMob] Initializing Fullscreen.
[RevMob] Ad received: (200).
[RevMob] Fullscreen clicked.
[RevMob] Loading iTunes url.
[RevMob] Fullscreen closed.
[RevMob] Opening iTunes.
***** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'**
如果有一个加载屏幕阻止用户交互,而RevMob采取的是不会发生的行动的时间。。。我试图用一个加载屏幕来覆盖广告,但我没能做到。。。有什么解决办法吗
--
我有2个IVAR来控制revMob:
RevMobFullscreen* _revMobFullScreen;
BOOL _revMobFullScreenLoaded;
- (void)cacheFullScreenRevMob{
//Get rid of old fullscreen ad and create a new one
//This is need in order to (re)load an fullscreen ad
[_revMobFullScreen release], _revMobFullScreen = nil;
_revMobFullScreen = [[RevMobAds session] fullscreen];
[_revMobFullScreen retain];
//Pre load the ad for the next time
_revMobFullScreenLoaded = NO;
[_revMobFullScreen loadWithSuccessHandler:^(RevMobFullscreen *fs) {
_revMobFullScreenLoaded = YES;
} andLoadFailHandler:^(RevMobFullscreen *fs, NSError *error) {
_revMobFullScreenLoaded = NO;
} onClickHandler:nil onCloseHandler:^{
[self postNotificationOnMainThreadFullAdDidFinish];
}];
}
- (BOOL)showFullScreenRevMob{
BOOL didShow = NO;
if (_revMobFullScreenLoaded) {
[_revMobFullScreen showAd];
didShow = YES;
}
//Cache for the next time
[self cacheFullScreenRevMob];
return didShow;
}
我正在以这种方式预加载全屏广告:
RevMobFullscreen* _revMobFullScreen;
BOOL _revMobFullScreenLoaded;
- (void)cacheFullScreenRevMob{
//Get rid of old fullscreen ad and create a new one
//This is need in order to (re)load an fullscreen ad
[_revMobFullScreen release], _revMobFullScreen = nil;
_revMobFullScreen = [[RevMobAds session] fullscreen];
[_revMobFullScreen retain];
//Pre load the ad for the next time
_revMobFullScreenLoaded = NO;
[_revMobFullScreen loadWithSuccessHandler:^(RevMobFullscreen *fs) {
_revMobFullScreenLoaded = YES;
} andLoadFailHandler:^(RevMobFullscreen *fs, NSError *error) {
_revMobFullScreenLoaded = NO;
} onClickHandler:nil onCloseHandler:^{
[self postNotificationOnMainThreadFullAdDidFinish];
}];
}
- (BOOL)showFullScreenRevMob{
BOOL didShow = NO;
if (_revMobFullScreenLoaded) {
[_revMobFullScreen showAd];
didShow = YES;
}
//Cache for the next time
[self cacheFullScreenRevMob];
return didShow;
}
然后,这就是我显示全屏revmob广告的方式:
RevMobFullscreen* _revMobFullScreen;
BOOL _revMobFullScreenLoaded;
- (void)cacheFullScreenRevMob{
//Get rid of old fullscreen ad and create a new one
//This is need in order to (re)load an fullscreen ad
[_revMobFullScreen release], _revMobFullScreen = nil;
_revMobFullScreen = [[RevMobAds session] fullscreen];
[_revMobFullScreen retain];
//Pre load the ad for the next time
_revMobFullScreenLoaded = NO;
[_revMobFullScreen loadWithSuccessHandler:^(RevMobFullscreen *fs) {
_revMobFullScreenLoaded = YES;
} andLoadFailHandler:^(RevMobFullscreen *fs, NSError *error) {
_revMobFullScreenLoaded = NO;
} onClickHandler:nil onCloseHandler:^{
[self postNotificationOnMainThreadFullAdDidFinish];
}];
}
- (BOOL)showFullScreenRevMob{
BOOL didShow = NO;
if (_revMobFullScreenLoaded) {
[_revMobFullScreen showAd];
didShow = YES;
}
//Cache for the next time
[self cacheFullScreenRevMob];
return didShow;
}
编辑:由于@João的评论是在5.6.2版上修复的错误请再看看这个问题,我编辑了它,添加了一些代码。是的,我保留了全屏广告。@diogot他们昨天刚修好!5.6.2版工作正常。如果尝试打开广告URL时出现超时,应用程序也会崩溃。这是5.6.1版上的一个错误。RevMob刚刚发布了5.6.2版的修复程序