我有一个
class Fancy:UIButton
Run Code Online (Sandbox Code Playgroud)
我想找到同一类的所有兄弟视图.
我这样做
for v:UIView in superview!.subviews
{
if v.isKindOfClass(Fancy)
{
// you may want... if (v==self) continue
print("found one")
(v as! Fancy).someProperty = 7
(v as! Fancy).someCall()
}
}
Run Code Online (Sandbox Code Playgroud)
它似乎在测试中可靠地工作(没有兄弟姐妹,许多等)
但是有很多"!" 在那里.
这是Swift的正确方法吗?
顺便说一句,这是一个很酷的方式来实现扩展基于下面的好答案
那么使用函数式编程呢?
self.superview?
.subviews
.flatMap { $0 as? Fancy }
.filter { $0 != self }
.forEach { fancy in
fancy.someProperty = 4
fancy.someMethod()
}
Run Code Online (Sandbox Code Playgroud)
关于什么:
for v in superview!.subviews
{
if let f = v as? Fancy{
print("found one")
f.someProperty = 7
f.someCall()
}
}
Run Code Online (Sandbox Code Playgroud)