【发布时间】:2020-05-25 04:47:45
【问题描述】:
我有一个UIStackView,其中包含UIViews 或我创建的名为MyView 的类的对象。
MyView 是UIView 的子类。
我想从该数组中提取 MyView 类的所有对象。
这是我尝试过的以及相应的错误:
let views = Array< MyView >(allViews).filter { $0 is MyView }
没有更多上下文,表达式的类型是模棱两可的
我喜欢这些无言的信息。
let views = Array<Any>(allViews).filter { $0 is MyView }
我喜欢它与 Any 的编译方式。
在这种情况下没有错误,但views 包含与myViews 相同的对象,没有过滤任何内容。
我知道MyView 是UIView 的子类,所以这里快速测试的是对象是否属于UIView 类。如果这是真的,如果它只能过滤某些类,为什么还要允许程序员在过滤器上指定任何类?
有没有办法测试子类?
【问题讨论】:
-
allViews是什么?