2013-02-28 1 views
1

При создании простого приложения с Monocross (используя MonoTouch) и компиляции для устройства IOS я получаю некоторые плохие предупреждения, как это:Монокросс готов для профессионального использования на устройстве iOS?

Предупреждение MT4112: Регистратор нашел общий тип: MonoCross.Touch.MXTouchViewController`1. Регистрация общих типов с помощью ObjectiveC не поддерживается и приведет к случайному поведению и/или сбоям. (MT4112).

Я прочитал все, что я могу найти об использовании MonoTouch с дженериками на устройстве iOS, и он в основном не поддерживается. В настоящее время мое приложение работает на самом устройстве, но предупреждения меня беспокоят.

Я думаю, мой вопрос в том, что такое состояние Monocross, когда вы получаете эти предупреждения даже с помощью самых простых приложений? Разве это еще не готово для профессионального использования или предупреждения, не относящиеся к способу использования дженериков в Монокроссе?

Я также могу добавить следующее из Xamarin.iOS документов: «Xamarin.iOS не поддерживает создание родовых подклассов класса NSObject»

который является именно то, что делает Monocross, с, например, класс MXTouchTableViewController ,

ответ

4

Существует некоторая история: создание общих подклассов NSObject никогда не было поддерживаемым сценарием, но, к сожалению, MonoTouch никогда не применяли и не предупреждали об этом факте. Поэтому люди, конечно, закончили именно это.

Тогда однажды мне пришлось отследить что-то похожее на истинный гейзенбуг, и оказалось, что после многих часов разочаровывающей отладки это связано с тем, что в рассматриваемом проекте использовались общие подклассы NSObject. Точные данные не важны, но именно тогда в MonoTouch было добавлено предупреждение.

Моя точка зрения заключается в том, что люди используют общие подклассы NSObject в течение длительного времени, не сталкиваясь с какими-либо проблемами. Если вы тщательно протестируете приложение (что вам следует делать в любом случае), не беспокойтесь об этом.

Но если вы столкнулись с странным и необъяснимым поведением, мы, скорее всего, попросим вас исправить эти предупреждения, прежде чем рассматривать любые утверждения о том, что вы обнаружили ошибку в MonoTouch.

+0

Предупреждение было заменено на исключение в Xamarin.Monotouch 6.3.2? Я получаю '{MonoTouch.MonoTouchException: регистратор обнаружил недопустимый тип Cirrious.MvvmCross.Dialog.Touch.MvxTouchDialogViewController 1 [[Core.AlertVM, ViewModelsiOS, Version = 1.0.4842.16906, Culture = neutral, PublicKeyToken = null]] , Регистрация общих типов с помощью ObjectiveC не поддерживается.} \t MonoTouch.MonoTouchException ' – Kevin

+0

@Kevin: да, он регрессирован, и он будет исправлен в более позднем выпуске. Тем временем вы можете передать «--registrar: oldstatic» в mtouch (в дополнительных аргументах mtouch в настройках сборки iOS проекта). –

 Смежные вопросы

  • Нет связанных вопросов^_^