0

コードは次のとおりです。

Chartboost *cb = [Chartboost sharedChartboost];
cb.delegate = self;
cb.appId = CHARTBOOST_APPID;
cb.appSignature = CHARTBOOST_APPSIGNATURE;

[cb startSession];
[cb cacheInterstitial];

これは iOS6 デバイスでは問題なく動作しますが、iOS5 ではクラッシュします。

クラッシュログ:

NSInvalidArgumentException 理由: -[__NSCFDictionary setObject:forKeyedSubscript:]: 認識されないセレクターがインスタンス 0x1234sva8 に送信されました

どうすればこの問題を解決できますか? すでに AdSupport.framework をオプションにしました。

4

2 に答える 2

1

クラッシュ修正!

この投稿の解決策に従いました: http://forums.xamarin.com/discussion/3893/chartboost-ios-binding-works-on-ios-6-but-crashes-on-ios-5

lib arclite.a をプロジェクトに追加して、クラッシュを修正しました。

于 2013-07-21T10:27:52.487 に答える
1

Chartboostについてはわかりませんが、エラーメッセージは、コードが最新の「NSDictionaryおよびNSArray添え字」機能を使用していることを示しています。

dict[@"key"] // instead of [dict objectForKey:@"key"]

"Objective-C Feature Availability Index"によると、NSDictionary と NSArray の添え字には、iOS 6.0 以降の SDK と LLVM Compiler 4.0 が必要です。iOS 5 以降に展開されます。

したがって、iOS 4.3 との互換性が必要ない場合は、展開ターゲットを iOS 5 に設定し、iOS 6 SDK に対してコンパイルすると問題が解決するはずです。ビルド設定で、「LLVM GCC」などではなく「Apple LLVM コンパイラ」がコンパイラとして設定されていることを確認してください。

于 2013-07-21T10:43:15.943 に答える