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