フルスクリーン広告をタップして、広告が Safari または AppStore を開く前に閉じると、アプリがクラッシュし、次のエラーが表示されます。
[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がアクションを実行するのに時間がかかる間にユーザーの操作をブロックするローディング画面があった場合、それは起こりません...広告をローディング画面でカバーしようとしましたが、それを行うことができませんでした...解決策はありますか?それ?
--
revMob を制御する 2 つの iVar があります。
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];
}];
}
そして、フルスクリーンの revmob 広告を表示する方法は次のとおりです。
- (BOOL)showFullScreenRevMob{
BOOL didShow = NO;
if (_revMobFullScreenLoaded) {
[_revMobFullScreen showAd];
didShow = YES;
}
//Cache for the next time
[self cacheFullScreenRevMob];
return didShow;
}