1

2010年 12 月 16 日更新: 4.2 SDK で 4.0 デバイスをターゲットにすると、同様の問題があるようです... Interface Builder を使用して広告バナー ビューを作成すると、アプリがすぐにクラッシュします。iAd フレームワークの弱いリンクと、コード側での広告バナーの実装の再作成が修正でした。Ray Wenderlich によるこのスレッドに感謝します: http://www.raywenderlich.com/1371/how-to-integrate-iad-into-your-iphone-app

---

こんにちは、iOS 4.2 SDK (最終版) を使用して iOS 4.0 デバイスをターゲットにしてアプリを実行しようとしましたが、アプリは正常にコンパイルされますが、実行するとすぐにこのエラーが発生します...


*** Terminating app due to uncaught exception 'NSInternalInconsistencyException',
 reason: 'Invalid content size 'ADBannerContentSizePortrait' passed to
 ADAdSizeForBannerContentSize'
...

私は試した...


- (void)viewDidLoad {
    self.bannerView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50;
}

...しかし、運が悪く、まだ同じクラッシュエラーが発生しています。IB では、「サイズ」の唯一のオプションは「ポートレート、ランドスケープ、または両方」のように見えますが、これは iOS 4.0 のファンではないと思います。

誰にも提案はありますか?どうもありがとう。

4

4 に答える 4

6

これは私にとってはうまくいきました。少なくとも ADBannerView が Interface Builder で作成されている場合、4.2 より前のバージョンの OS では、非推奨のコンテンツ サイズ識別子が必要なようです。また、予防措置として iAd フレームワークをウィーク リンクにしています。これが誰かの役に立てば幸いです。素晴らしい情報と洞察を提供してくれたこのサイトの素晴らしいコミュニティに感謝します!

// if the current version of the os is less than 4.2, use the old way of defining the banner size
if ([[[UIDevice currentDevice] systemVersion] compare:@"4.2" options:NSNumericSearch] == NSOrderedAscending) {

    adBanner.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifier320x50];

    adBanner.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50;

    NSLog(@"below 4.2");

} else {

    adBanner.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait];

    adBanner.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;

    NSLog(@"4.2 or above");

}
于 2011-02-08T18:45:25.090 に答える
0

質問の「更新」にある答えは正しいです。この記事の執筆時点では、非推奨のiAd定数を使用しているため、RayWenderlichによるスレッドを更新する必要があることに注意してください。それ以外の場合は、この問題を解決するための非常に優れたリソースです。

于 2011-02-15T04:00:50.143 に答える
0

あなたは変更する必要があります

- (void)viewDidLoad { self.bannerView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50; }

- (void)viewDidLoad { self.bannerView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait //or landscape }

あなたが持っていたものは非推奨になりました。つまり、iOS4.2以降はサポートされなくなりました。

于 2010-11-26T22:16:26.330 に答える
0

iAd フレームワークを削除し、「既存のフレームワークを追加...」を使用して再度追加すると、問題が解決するようです...奇妙な。これが他の誰かに役立つことを願っています。

于 2010-11-23T03:45:53.340 に答える