4

我刚刚使用 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 

该应用程序可以编译并运行良好......

4

3 回答 3

6

重启XCode和MonoTouch,应该可以解决这个问题了……

于 2012-06-30T14:39:26.083 回答
1

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

  1. 在 XCode 中打开现有解决方案。
  2. 打开 xib 文件以启动 Interface Builder(从 XCode 中)。
  3. 在 Interface Builder 中,转到 File>Open。
  4. 导航到在 MonoDevelop 中创建的 xib 文件。

如果不打开现有的 XCode 解决方案,我找不到启动 Interface Builder 的方法。

于 2012-07-04T10:22:25.767 回答
0

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

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

相反,我从MonoTouch Library Project项目模板创建了一个新项目,将我的文件移到那里,然后我可以再次在 MonoDevelop 的 Interface Builder 中编辑 XIB/Storyboards。

替代方案:我实际上没有创建一个新项目并移动我的文件,而是更改了我的 csproj 文件中的 <ProjectTypeGuids>...</ProjectTypeGuids> 以匹配 MonoTouch 库项目,因为这对我来说更容易:

<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3
-BF4B-00C04F79EFBC}</ProjectTypeGuids>
于 2012-08-15T19:43:42.410 回答