繁体   English   中英

Monocross是否已准备好在iOS设备上使用?

[英]Is Monocross ready for professional use on an iOS device?

使用Monocross创建一个简单的应用程序(使用MonoTouch)并为iOS设备编译时,我会收到一些错误的警告,如下所示:

警告MT4112:注册商发现了一个通用类型:MonoCross.Touch.MXTouchViewController`1。 不支持使用ObjectiveC注册泛型类型,并且会导致随机行为和/或崩溃。 (MT4112)。

我已经阅读了有关在iOS设备上使用带有泛型的MonoTouch的所有内容,但它几乎不受支持。 我的应用程序目前适用于实际设备,但警告让我担心。

我想我的问题是,即使使用最简单的应用程序,当你收到这些警告时,Monocross的状态是什么? 它还没有准备好用于专业用途,还是与Monocross中使用仿制药的方式无关的警告?

我还可以从Xamarin.iOS文档添加以下内容:“Xamarin.iOS目前不支持创建NSObject类的通用子类”

这正是Monocross所做的,例如MXTouchTableViewController类。

这有一些历史:创建NSObject的通用子类从来就不是受支持的场景,但遗憾的是MonoTouch从未强制执行,也未对这一事实发出警告。 所以人们当然最终做到了这一点。

然后有一天我不得不追踪看起来像真正的heisenbug的东西,事实证明(经过几个小时的令人沮丧的调试)是因为有问题的项目使用了NSObject的通用子类。 确切的细节并不重要,但是当警告被添加到MonoTouch时。

我的观点是人们长期使用NSObject的通用子类,而不会遇到任何问题。 如果您广泛测试您的应用程序(无论如何应该这样做),请不要担心这一点。

但是,如果您遇到奇怪且无法解释的行为,我们很可能会在您查看您在MonoTouch中发现错误的任何声明之前要求您修复这些警告。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM