xib 不会在默认的 MonoTouch 应用程序中以 Xcode 打开



我刚刚使用MonoDevelop创建了一个MonoTouch解决方案,在我尝试在XCode中打开xib进行编辑后,我得到以下异常(并且xib无法打开):

System.NotSupportedException: Custom attribute type 0x43 is not supported.
at ICSharpCode.NRefactory.TypeSystem.CecilLoader+BlobReader.ReadCustomAttributeFieldOrPropType () [0x00000] in <filename unknown>:0 
at ICSharpCode.NRefactory.TypeSystem.CecilLoader+BlobReader.ReadNamedArg (IType attributeType) [0x00000] in <filename unknown>:0 
at ICSharpCode.NRefactory.TypeSystem.CecilLoader+CecilResolvedAttribute.DecodeBlob (System.Collections.Generic.List`1 positionalArguments, System.Collections.Generic.List`1 namedArguments) [0x00000] in <filename unknown>:0 
at ICSharpCode.NRefactory.TypeSystem.CecilLoader+CecilResolvedAttribute.DecodeBlob () [0x00000] in <filename unknown>:0 
at ICSharpCode.NRefactory.TypeSystem.CecilLoader+CecilResolvedAttribute.get_PositionalArguments () [0x00000] in <filename unknown>:0 
at MonoDevelop.MacDev.ObjCIntegration.NSObjectInfoService.ConvertType (MonoDevelop.Ide.TypeSystem.ProjectContentWrapper dom, ITypeDefinition type) [0x00000] in <filename unknown>:0 
at MonoDevelop.MacDev.ObjCIntegration.NSObjectInfoService+<GetRegisteredObjects>c__Iterator2.MoveNext () [0x00000] in <filename unknown>:0 
at MonoDevelop.MacDev.ObjCIntegration.NSObjectProjectInfo.Update () [0x00000] in <filename unknown>:0 
at MonoDevelop.MacDev.ObjCIntegration.NSObjectProjectInfo.Update (Boolean force) [0x00000] in <filename unknown>:0 
at MonoDevelop.MacDev.XcodeSyncing.XcodeProjectTracker.UpdateTypes (IProgressMonitor monitor) [0x00000] in <filename unknown>:0 

该应用程序编译并运行良好。

重新启动 XCode 和 MonoTouch,它应该可以解决这个问题......

我重新启动了MonoDevelop和XCode,但仍然遇到了同样的问题。在我找到更好的解决方案之前,我是这样做的:

  1. 在 XCode 中打开现有解决方案。
  2. 打开 xib 文件以打开界面生成器(从 XCode 中)。
  3. 在界面生成器中,转到文件>打开。
  4. 导航到在 MonoDevelopment 中创建的 xib 文件。

我找不到在不打开现有 XCode 解决方案的情况下启动界面生成器的方法。

我尝试重新启动/重新安装/重新启动无济于事。

通过删除对在同一解决方案中创建的便携式库项目的引用解决了我的问题。 Portable Library 声称它支持 MonoTouch,但也许它并不意味着引用 MonoTouch 本身(因为那样它就不会移植到其他平台)。 我确实收到了一些与引用MonoTouch相关的编译警告。

相反,我从MonoTouch库项目项目模板创建了一个新项目,将我的文件移动到那里,我可以再次在MonoDevelop的界面生成器中按预期编辑XIB/故事板。

替代方法:我实际上所做的不是创建新项目并移动我的文件,而是更改了...在我的csproj文件中匹配MonoTouch Library项目,因为这对我来说更容易:

<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3
-BF4B-00C04F79EFBC}</ProjectTypeGuids>

最新更新