Xamarin.iOS找不到类型BaseType属性

时间:2014-01-13 13:54:58

标签: xamarin.ios xamarin-studio

我正在研究Objective-C协议和委托,并试图在Xamarin.iOS中实现自定义协议。我在Xamarin文档中关注“绑定协议”的示例

[BaseType (typeof(NSObject))]
[Model][Protocol]
public interface INITableViewCellDelegate {

}

由于某种原因我找不到BaseType属性。我不能参考它。我目前的项目名称空间列表是:

using System;
using System.Drawing;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
using MonoTouch.CoreGraphics;
using MonoTouch.ObjCRuntime;

我期待它应该在System或MonoTouch.ObjCRuntime下。任何人都能解释一下吗?我已经检查了StackOverflow上涉及绑定协议的其他问题,很多例子显示了相同的MonoTouch使用。

谢谢

3 个答案:

答案 0 :(得分:6)

确保您使用的是iOS绑定项目

enter image description here

答案 1 :(得分:0)

[BaseType]属性仅用于“iOS绑定项目”类型的项目中,并且在运行时不可用。

因此,请确保您正在执行“iOS绑定项目”,该项目将由btouch工具处理,并将为您的本机库生成绑定。

答案 2 :(得分:0)

我遇到了同样的问题,因为我只是盲目地将Sharpie创建的文件添加到我的项目中。

创建新的iOS绑定库时,它会创建两个文件:ApiDefinition.csStructs.cs。除了与项目名称匹配的命名空间外,它们都是空的。

当Sharpie运行时,它会创建两个文件:ApiDefinitions.csStructsAndEnums.cs。这些是纯定义,在命名空间中不存在。不要将这些文件添加到项目中。代替;

  1. 复制ApiDefinitions.cs的所有内容并将其粘贴到ApiDefinition.cs中的空名称空间中。
  2. 复制StructsAndEnums.cs的所有内容并将其粘贴到Structs.cs中的空名称空间中。
  3. 希望它现在应该构建。