Ошибка при попытке открыть .xib в XCodeInterfaceBuilder - PullRequest
0 голосов
/ 29 сентября 2011

Я скачал образец Red Laser MonoTouch и запустил проект в MonoDevelop, мне пришлось сначала обновить файл решения, чтобы он загрузился в MonoDevelop.

Когда я пытаюсь просмотреть один из файлов .xib в Xcode Interface Builder, я получаю сообщение об ошибке:

Ошибка обновления проекта Xcode. Не удалось создать розетку 'overlayController' в классе 'RedLaserSample.RLSampleViewController' так как его тип 'RedLaserSample.OverlayController' не может быть разрешен в Obj-C.

подробности:

MonoDevelop.MacDev.ObjCIntegration.ObjectiveCGenerationException: Не удалось создать выходной оверлейный контроллер в классе RedLaserSample.RLSampleViewController как его тип «RedLaserSample.OverlayController» не может быть преобразован в Obj-C в MonoDevelop.MacDev.ObjCIntegration.NSObjectTypeInfo.GenerateObjcType (Каталог System.String) [0x001bf] в /private/tmp/source/monodevelop/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectTypeInfo.cs:116 в MonoDevelop.MacDev.XcodeSyncing.XcodeSyncedType.SyncOut (MonoDevelop.MacDev.XcodeSyncing.XcodeSyncContext context) [0x00000] в /private/tmp/source/monodevelop/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeSyncedType.cs:62 в MonoDevelop.MacDev.XcodeSyncing.XcodeMonitor.UpdateProject (IProgressMonitor monitor, System.Collections.Generic.List`1 allItems, MonoDevelop.MacDev.XcodeIntegration.XcodeProject emptyProject) [0x00318] в /private/tmp/source/monodevelop/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeMonitor.cs:138 в MonoDevelop.MacDev.XcodeSyncing.XcodeProjectTracker.UpdateXcodeProject (IProgressMonitor monitor) [0x00000] в /private/tmp/source/monodevelop/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeProjectTracker.cs:315

Ответы [ 2 ]

2 голосов
/ 14 октября 2011

Если ваш файл OverlayController находится в другой папке проекта, чем RLSampleViewController, который содержит ссылку на OverlayController.Убедитесь, что RLSampleViewController и OverlayController находятся на одном уровне или в одной папке проекта.Мы решили ту же проблему, просто переместив файлы непосредственно в проект, а не в папку проекта.

См. Также разделы «Регистрация и пространства имен» на странице документации по генерации кода Xamarin XIB

2 голосов
/ 30 сентября 2011

Вам необходимо добавить [Register ("OverlayController")] в свой класс OverlayController.

...