Monotouch Binding项目构建错误

时间:2013-06-06 01:05:51

标签: c# binding xamarin.ios

尝试构建绑定项目时出现以下错误。信息有点神秘,我不确定是什么坏/坏。

  

错误CS0117:MonoTouch.Constants' does not contain a definition for NimbusLibrary'(CS0117)(MonoTouch.Nimbus)

     

错误CS1502:最佳重载方法匹配   `MonoTouch.ObjCRuntime.Dlfcn.dlopen(string,int)'有一些无效   参数(CS1502)(MonoTouch.Nimbus)

     

错误CS1503:要键入的参数#1' cannot convert object'表达式   `string'(CS1503)(MonoTouch.Nimbus)

我有时会注意到,当我关闭并重新打开项目,然后重建时,错误消息不会立即出现,但不久之后,它们会立即回来。

有什么想法吗?如果您需要我的绑定项目的源代码,请告诉我。

1 个答案:

答案 0 :(得分:4)

这是因为您错过了最后记录的[FieldAttribute]上的参数

  

如果您是静态链接,则没有要绑定的库,所以您   需要使用__Internal名称:

[Static]
interface LonelyClass {
    [Field ("MyFieldFromALibrary", "__Internal")]
    NSString MyFieldFromALibrary { get; }
}

所以你的绑定现在看起来像这样

[BaseType (typeof (NIRecyclableView))]
public partial interface NIPageView : NIPagingScrollViewPage 
{
    [Field ("NIPagingScrollViewUnknownNumberOfPages")]
    int NIPagingScrollViewUnknownNumberOfPages { get; }

    [Field ("NIPagingScrollViewDefaultPageMargin")]
    float NIPagingScrollViewDefaultPageMargin { get; }
}

它一定是这样的

[BaseType (typeof (NIRecyclableView))]
public partial interface NIPageView : NIPagingScrollViewPage 
{
    [Field ("NIPagingScrollViewUnknownNumberOfPages", "__Internal")]
    int NIPagingScrollViewUnknownNumberOfPages { get; }

    [Field ("NIPagingScrollViewDefaultPageMargin", "__Internal")]
    float NIPagingScrollViewDefaultPageMargin { get; }
}

这是因为最后的所有静态库都将与主可执行文件合并。

希望这有帮助。

亚历