在objective-C中,我们可以声明一个符合某个协议的类
@property (nonatomic, strong) Class<UIObjectRestoration> objectRestorationClass;
并可以将值指定为
someObject.objectRestorationClass = [SomeClass class];
问题是: 我怎么能在Swift中做到这一点?我尝试使用
var objectRestorationClass: UIObjectRestoration!
和
someObject.objectRestorationClass = SomeClass.self
但它给了我错误
'SomeClass.Type'不会转换为协议'UIObjectRestoration'
SomeClass是:
class SomeClass: UIViewController, UIObjectRestoration {
class func objectWithRestorationIdentifierPath(identifierComponents: [AnyObject]!, coder: NSCoder!) -> UIStateRestoring! {
return restoringObject
}
}
我尝试通过类型转换它,但它给了我同样的错误。
答案 0 :(得分:0)
[UIObjectRestoration]
是UIObjectRestoration项的数组。使用
var objectRestorationClass : UIObjectRestoration
并使用objectRestorationClass = SomeClass.classForCoder
答案 1 :(得分:0)
您可以使用
var objectRestorationClass: UIObjectRestoration.Type!