【发布时间】:2018-03-29 00:24:48
【问题描述】:
短版:
在 Objective-C 中,缺少基本类型的 @protocol 是否具有推断的基本类型 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?
【问题讨论】:
-
不要混淆类
NSObject和协议NSObject。Account <NSObject>表示Account符合NSObject协议。 Objective-C 中的协议没有基本类型。
标签: c# objective-c binding xamarin.ios objective-sharpie