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 ファイルを開いて、(XCode 内から) Interface Builder を起動します。
  3. Interface Builder で、[ファイル] > [開く] に移動します。
  4. MonoDevelop で作成された xib ファイルに移動します。

既存の XCode ソリューションを開かずに Interface Builder を起動する方法が見つかりません。

于 2012-07-04T10:22:25.767 に答える
0

再起動/再インストール/再起動を試みましたが、役に立ちませんでした。

同じソリューションで作成したポータブル ライブラリプロジェクトへの参照を削除して、問題を解決しました。Portable Library は、MonoTouch をサポートしていると主張していますが、おそらく MonoTouch 自体を参照することを意図したものではありません (他のプラットフォームに移植できないためです)。

代わりに、MonoTouch Library Projectプロジェクト テンプレートから新しいプロジェクトを作成し、そこにファイルを移動しました。また、MonoDevelop の Interface Builder で期待どおりに XIB やストーリーボードを編集できます。

代替案: 新しいプロジェクトを作成してファイルを移動する代わりに、csproj ファイルの <ProjectTypeGuids>...</ProjectTypeGuids> を MonoTouch Library プロジェクトに一致するように変更しました。

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