MonoTouch"无法识别的选择器发送到实例"不能在iOS5上运行(但在iOS6上运行)

Pau*_*opf 3 c# linker xamarin.ios aviary

我使用MonoTouch与Aviary SDK链接时遇到以下错误.

- [__ NSArrayM objectAtIndexedSubscript:]:无法识别的选择器发送到实例0x9b0f1d0

当我尝试推送链接的控制器时,会出现问题.

PresentViewController(photoEditor, true, new NSAction(() => {}));
Run Code Online (Sandbox Code Playgroud)

我已将我的项目推送/共享到https://github.com/theonlylawislove/MonoTouch.Aviary,您可以在其中重现问题.

我的演示应用程序适用于iOS 6模拟器,但提到的错误发生在iOS 5模拟器(和设备)上.

我直接从最新的Aviary SDK 3.0中获取了所有内容(.a/bundles).他们提供的演示应用程序(使用相同的.a lib)适用于iOS 5,因此问题必须在于MonoTouch和链接.

这是我的链接标志.

[assembly: LinkWith ("libAviarySDK.a", 
                     LinkTarget = LinkTarget.ArmV7 | LinkTarget.Simulator, 
                     ForceLoad = true, 
                     IsCxx = true,
                     Frameworks="Accelerate CoreData CoreText Foundation MessageUI OpenGLES QuartzCore StoreKit SystemConfiguration UIKit", 
                     WeakFrameworks="AdSupport",
                     LinkerFlags="-ObjC -all_load -fobjc-arc -lz -lsqlite3.0")]
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?提前致谢!我希望解决方案能够与社区分享,因为Aviary不提供MonoTouch绑定.

dal*_*oto 6

补充@ Poupou的答案,很容易让iOS 5中的选择器可用,只需链接即可libarclite.a.

下面是一个使用它的Xamarin.iOS绑定示例,如果你想要你可以libarclite.a从那里抓取它.

只需添加libarclite.a到您的绑定项目,您应该很高兴.

希望这可以帮助

亚历克斯