@protocol 缺少基本类型
Base type is missing for @protocol
短版:
缺少基本类型的 @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
但这没有多大意义...根据 Microsoft 的文档:
The API definition file consists of a number of interfaces. The
interfaces in the API definition will be turned into a class
declaration and they must be decorated with the [BaseType] attribute
to specify the base class for the class.
那么在这种情况下我该怎么做,我可以安全地为该协议假定 NSObject
的基本类型吗?
首先,检查BaseTypeAttribute。
您定义中的每个 interface
(包括 Protocol
)都具有 [BaseType]
属性,该属性声明生成对象的基类型。
参考this sample。
这里InfColorPickerControllerDelegate
是协议,我们应该加上[BaseType(typeof(NSObject))]
.
短版:
缺少基本类型的 @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
但这没有多大意义...根据 Microsoft 的文档:
The API definition file consists of a number of interfaces. The interfaces in the API definition will be turned into a class declaration and they must be decorated with the [BaseType] attribute to specify the base class for the class.
那么在这种情况下我该怎么做,我可以安全地为该协议假定 NSObject
的基本类型吗?
首先,检查BaseTypeAttribute。
您定义中的每个 interface
(包括 Protocol
)都具有 [BaseType]
属性,该属性声明生成对象的基类型。
参考this sample。
这里InfColorPickerControllerDelegate
是协议,我们应该加上[BaseType(typeof(NSObject))]
.