Swift 对类型执行静态方法
在我的应用程序中,我得到了一个名为Swift 对类型执行静态方法,swift,Swift,在我的应用程序中,我得到了一个名为a的类。我有两个类(B和C)继承自这个类 控制器类有一个方法类func D(包括存储:Bool,completion:[results:[Controller])->Void) 这是控制器类上的一个静态方法,我的2个子类可以重写此方法,但不确定它是否会重写 我想创建一个数组,其中包含我的2个子类的类型,如下所示: var myTypes=[B.self,C.self] 然后我想在这些类型上执行函数A,但我无法完成 我所尝试的: for item in myTyp
a
的类。我有两个类(B
和C
)继承自这个类
控制器
类有一个方法类func D(包括存储:Bool,completion:[results:[Controller])->Void)
这是控制器类上的一个静态方法,我的2个子类可以重写此方法,但不确定它是否会重写
我想创建一个数组,其中包含我的2个子类的类型,如下所示:
var myTypes=[B.self,C.self]
然后我想在这些类型上执行函数A
,但我无法完成
我所尝试的:
for item in myTypes {
(item as A.self).D(false, completion: { (results) -> Void in
});
}
这不管用。同样,如果没有强制转换,它(显然)不起作用,因为它是一个AnyObject。因为它不是一个对象,而是一个我想要使用的类,所以我不能正常地强制转换它
也尝试了此操作,但此操作会崩溃,因为它尝试实例化类型,但它也是一个NSManagedObject,因此无法以这种方式实例化(item()
)
有没有关于如何让它工作的建议?好的,这比我想象的要容易。在
myTypes
数组中指定了类型之后,我可以很容易地遍历它们。因为它是类上的一个静态方法,所以我根本不需要实例化它,我可以直接使用它
var myTypes: [A.Type] = [ B.self, C.self ];
for item in myTypes {
item.D(false, completion: { (results) -> Void in
});
}
将其作为答案发布,以便将来需要它的任何人都知道它已解决
var myTypes: [A.Type] = [ B.self, C.self ];
for item in myTypes {
item.D(false, completion: { (results) -> Void in
});
}