Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 对类型执行静态方法_Swift - Fatal编程技术网

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
    });
}