我有一个Objective-C变量符合多个协议。
id <NSObject,NSCopying,NSCoding> identityToken;
我将如何在Swift中代表这种类型?
这应该工作:
var identityToken: NSObjectProtocol & NSCopying & NSCoding
注意,你必须在swift中使用NSObjectProtocol而不是NSObject。
以下是一些其他示例:
符合多种协议的对象数组:
var array: [NSObjectProtocol & NSCopying & NSCoding]
具有符合多个协议的参数的函数:
func foo(param: NSObjectProtocol & NSCopying & NSCoding) { }
对于Swift版本3.0之前,请使用:
var identityToken: protocol<NSObjectProtocol,NSCoding>