@protocol缺少基本类型

时间:2018-03-29 00:24:48

标签: c# objective-c binding xamarin.ios objective-sharpie

短版:

具有基本类型缺失的@protocol在Objective-C中是否具有NSObject的推断基本类型?

长版:

我将Objective C库绑定到C#。这个图书馆中的一个协议缺少基本类型......通常我会期待这样的事情:

@protocol Account <NSObject, NSCopying, NSSecureCoding>

我定义为:

[Protocol, Model]
[BaseType(typeof(NSObject))]
interface Account : INSCopying, INSSecureCoding

但现在我面临以下情况:

@protocol Configuring

因此它将被定义为:

[Protocol, Model]
interface Configuring

但这没有多大意义......根据微软的文档:

  

API定义文件由许多接口组成。该   API定义中的接口将变为类   声明,它们必须使用[BaseType]属性进行修饰   指定类的基类。

那么在这种情况下该怎么做呢,我可以安全地假设此协议的基本类型为NSObject吗?

1 个答案:

答案 0 :(得分:1)

首先,检查BaseTypeAttribute

定义中的每个interface(包括Protocol)都具有[BaseType]属性,该属性声明了生成对象的基本类型。

请参阅this sample

此处InfColorPickerControllerDelegate是协议,我们应该添加[BaseType(typeof(NSObject))]