3

我为最新版本的 Chartboost SDK 创建了 Monotouch iOS 绑定。当我在 iOS 6 模拟器上运行它时它工作正常,但在 iOS 5 模拟器上失败。

错误信息:

NSInvalidArgumentException reason: -[__NSCFDictionary setObject:forKeyedSubscript:]: unrecognized selector sent to instance 0x11b8cce0

0   blockpuzzle      0x0016c94e mono_handle_exception_internal_first_pass + 2190
1   blockpuzzle      0x0016e392 mono_handle_exception_internal + 1602
2   blockpuzzle      0x0016eedf mono_handle_exception + 47
3   blockpuzzle      0x001b2012 mono_x86_throw_exception + 306
4   ???              0x09bc5f8f 0x0 + 163340175
5   blockpuzzle      0x002f40ee monotouch_exception_handler + 158
6   CoreFoundation   0x038ce12c __handleUncaughtException + 76
7   libobjc.A.dylib  0x03a5ff43 _objc_terminate + 86
8   libc++abi.dylib  0x03f738de _ZL19safe_handler_callerPFvvE + 13
9   libc++abi.dylib  0x03f73946 __cxa_bad_typeid + 0
10  libc++abi.dylib  0x03f74ab2 _ZL23__gxx_exception_cleanup19_Unwind_Reason_CodeP17_Unwind_Exception + 0
11  libobjc.A.dylib  0x03a5fe15 _objc_exception_destructor + 0
12  CoreFoundation   0x038cfced -[NSObject doesNotRecognizeSelector:] + 253
13  CoreFoundation   0x03834f00 ___forwarding___ + 432
14  CoreFoundation   0x03834ce2 _CF_forwarding_prep_0 + 50
15  blockpuzzle      0x00026777 -[CBAPIConnection sendRequest:success:failure:] + 1175
16  blockpuzzle      0x000262db -[CBAPIConnection sendRequest:success:] + 55
17  blockpuzzle      0x0002361f -[Chartboost startSession] + 468
at (wrapper managed-to-native) MonoTouch.ObjCRuntime.Messaging.void_objc_msgSend (intptr,intptr) <IL 0x0000a, 0x0002c>
at com.blueriver.chartboost.Chartboost.startSession () <IL 0x00016, 0x00028>

我已将项目的 iOS 构建 SDK 版本设置为 6.1,并将部署目标(最低操作系统版本)设置为 4.3。

我错过了什么?

[更新] 我已经把我的绑定放到了 pastebin 上:http: //pastebin.com/KfTztyDP。也许它有一些帮助。

4

2 回答 2

2

forKeyedSubscript是在 iOS 6 中添加的。他们的文档是否说他们支持 iOS 5,或者是否有适用于旧系统的不同版本的库?

于 2013-05-07T22:22:29.177 回答
2

感谢dalexsoto在这里的回答,我找到了答案:MonoTouch "unrecognized selector sent to instance" not working on iOS5 (but does on iOS6)

我只需要将 lib arclite.a 添加到我的 Monotouch 绑定项目中,它就可以工作了。

如果有人遇到相同或类似的问题,只需在此处下载该库https://github.com/PSPDFKit/XamarinBindings/tree/master/AlexTouch.PSPDFKit并将其添加到您的绑定项目中。
多亏了新的 Xamarin Studio,您无需摆弄由绑定创建的 dll。只需在主项目中添加对绑定项目的引用,一切都很好。

于 2013-05-08T11:43:25.333 回答