2

iAd フレームワークを既存のアプリケーションに追加しています。アプリケーションはポートレートのみで、iPhone のみです。iOS 6 では、シミュレーターと iPhone 5 の両方ですべてが実行されています。ただし、iOS 5 では、シミュレーターと iPhone 4 の両方で失敗します。次の例外がスローされます。

'NSInternalInconsistencyException', reason: 'currentContentSize must be one of the requiredContentSizes; 'ADBannerContentSizePortrait' is not in {(
    ADBannerContentSizeLandscape
)}'

例外は次の行でスローされます。

iAdBannerView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;

このように横向きのバナー以外を表示する方法はありません。どこかで何か間違った設定をしているに違いないと思いますが、どこにあるのかわからず、iOS 6 で問題なく動作することに興味があります。

ここで何か助けていただければ幸いです。ありがとう!

更新: 十分な担当者ポイントがないため、これにはお答えできません。しかし、私はそれを修正しました:

背景: ADBannerView の周りに Kobold2D ラッパーを使用しています。そのクラスである KKAdBanner は、エラーの原因となっている回線を実際に呼び出しているクラスです。横長のサイズのみを許可するように ADBannerView を構成することで、この呼び出しに先立っていたことが判明しました。これは構成の問題であり、解決できます。

もちろん、iOS 6 でこれが機能した理由はまったくわかりませんが、まあ :-)

4

1 に答える 1

0

私はこれを使用したことはありませんが、ドキュメントから理解していることから、取ることができる@property(nonatomic, copy) NSSet *requiredContentSizeIdentifiers
すべての値を設定する必要がありcurrentContentSizeIdentifierます。

そしてあなたの例外は、そのNSSetにはランドスケープ用のものしかないと言っていることです。
表示されている違いは、iOSバージョンが異なるとデフォルト値が異なることが原因である可能性があります。(私は推測しています)

こちらを参照してください。

于 2012-12-08T20:31:12.033 に答える