Monocross是否可以在iOS设备上进行专业使用?

Monocross是否可以在iOS设备上进行专业使用?,ios,objective-c,generics,xamarin.ios,monocross,Ios,Objective C,Generics,Xamarin.ios,Monocross,当使用Monocross(使用MonoTouch)创建一个简单的应用程序并为iOS设备编译时,我会收到一些错误的警告,如下所示: 警告MT4112:注册器找到了泛型类型:MonoCross.Touch.MXTouchViewController`1。不支持向Objective注册泛型类型,这将导致随机行为和/或崩溃。(MT4112) 我已经阅读了所有我能找到的关于在iOS设备上使用MonoTouch和泛型的信息,但大多数情况下都不受支持。我的应用程序目前在实际设备上运行,但警告让我担心 我想我的

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

警告MT4112:注册器找到了泛型类型:MonoCross.Touch.MXTouchViewController`1。不支持向Objective注册泛型类型,这将导致随机行为和/或崩溃。(MT4112)

我已经阅读了所有我能找到的关于在iOS设备上使用MonoTouch和泛型的信息,但大多数情况下都不受支持。我的应用程序目前在实际设备上运行,但警告让我担心

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

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


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

这有一些历史:创建NSObject的泛型子类从来都不是受支持的场景,但不幸的是Monocross从未强制执行,也没有警告过这一事实。所以,人们最终当然就是这样做的

后来有一天,我不得不追踪到一个看起来像真正的海森堡的东西,结果(经过数小时令人沮丧的调试)是因为这个项目使用的是NSObject的泛型子类。确切的细节并不重要,但这正是MonoTouch添加警告的时候

我的观点是,人们使用NSObject的泛型子类已经很长时间了,没有遇到任何问题。如果你广泛地测试你的应用程序(无论如何你都应该这么做),不要担心这一点


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

这有一些历史:创建NSObject的泛型子类从来都不受支持,但不幸的是,MonoTouch从未强制实施,也没有人警告过这一事实。所以,人们最终当然就是这样做的

后来有一天,我不得不追踪到一个看起来像真正的海森堡的东西,结果(经过数小时令人沮丧的调试)是因为这个项目使用的是NSObject的泛型子类。确切的细节并不重要,但这正是MonoTouch添加警告的时候

我的观点是,人们使用NSObject的泛型子类已经很长时间了,没有遇到任何问题。如果你广泛地测试你的应用程序(无论如何你都应该这么做),不要担心这一点


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

警告是否已在Xamarin.MonoTouch 6.3.2中更改回异常?我得到了一个
{MonoTouch.MonoTouchException:注册器发现了一个无效类型cirries.MvvmCross.Dialog.Touch.MvxTouchDialogViewController 1[[Core.AlertVM,ViewModelsiOS,Version=1.0.4842.16906,Culture=neutral,PublicKeyToken=null]]。不支持向ObjectiveC注册泛型类型。}MonoTouch.MonoTouchException
@Kevin:是的,它已经回归,将在以后的版本中修复。同时,您可以将“-register:oldstatic”传递给mtouch(在项目的iOS构建选项中的附加mtouch参数中)。警告是否已更改回Xamarin.Monotouch 6.3.2中的异常?我得到了一个
{MonoTouch.MonoTouchException:注册器发现了一个无效类型cirries.MvvmCross.Dialog.Touch.MvxTouchDialogViewController 1[[Core.AlertVM,ViewModelsiOS,Version=1.0.4842.16906,Culture=neutral,PublicKeyToken=null]]。不支持向ObjectiveC注册泛型类型。}MonoTouch.MonoTouchException
@Kevin:是的,它已经回归,将在以后的版本中修复。同时,您可以将“-register:oldstatic”传递给mtouch(在项目的iOS构建选项中的附加mtouch参数中)。