2

フルスクリーン広告をタップして、広告が 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;
}
4

1 に答える 1