我如何保证 addChild(x) 没有被添加两次?
How do I safeguard that addChild(x) isn't added twice?
我一直 运行 遇到一个问题,其中 addChild(myLabel)
被触发了两次,导致崩溃。如果已经添加了 label
,有没有办法保证 addChild(myLabel)
不会被触发?
我一直在寻找 bool
,类似 myLabel.isAddedToView
的东西,但我认为没有。我也试过
guard let test = addChild(myLabel) else {print("error") return}
但这给了我错误
Initializer for conditional binding must have Optional type, not Void'
如何在布尔值中跟踪它,例如
var isChildAdded = false
if !isChildAdded {
addChild(myLabel)
isChildAdded = true
}
如果你指的是这个函数的用法addChild(_ childController: UIViewController)
那么我建议通过
检查
if !controller.children.contains(controller1) {
// your actions
}
否则如果是addSubview(_ view: UIView)
那么
if !view1.subviews.contains(view2) {
//your actions
}
我一直 运行 遇到一个问题,其中 addChild(myLabel)
被触发了两次,导致崩溃。如果已经添加了 label
,有没有办法保证 addChild(myLabel)
不会被触发?
我一直在寻找 bool
,类似 myLabel.isAddedToView
的东西,但我认为没有。我也试过
guard let test = addChild(myLabel) else {print("error") return}
但这给了我错误
Initializer for conditional binding must have Optional type, not Void'
如何在布尔值中跟踪它,例如
var isChildAdded = false
if !isChildAdded {
addChild(myLabel)
isChildAdded = true
}
如果你指的是这个函数的用法addChild(_ childController: UIViewController)
那么我建议通过
if !controller.children.contains(controller1) {
// your actions
}
否则如果是addSubview(_ view: UIView)
那么
if !view1.subviews.contains(view2) {
//your actions
}