我正在测试一些用户可能面临的情况,即他们可能会在没有互联网连接的情况下打开应用程序,并且在某些时候,在使用应用程序时连接会重新出现,因此我希望他们检索他们的数据。数据是从后端检索的,它被附加到数组中,但奇怪的是需要遵循的函数没有完全执行,我得到一个线程错误。以下是相关的代码块:
有问题的数组与 didSet 和被调用函数:
var customButtons:[CustomColors]=[
CustomColors(color: UIColor(red: 1, green: 1, blue: 1, alpha: 1 )),
CustomColors(color: UIColor(red: 247/255, green: 214/255, blue: 217/255, alpha: 1 )),
]{
didSet {
if(customButtons[customButtons.count-2].nature.frame.minX == 0){
print("bugged")
sortCColor()
}
}
}
viewDidLoad() 上的获取请求和连接检测器:
override func viewDidLoad() {
Net.shared.monitorNet(){ [self]value in
if(value == "connected"){
connection = true
print("on")
initFetchRequests()
// send avatar and other reqs add nested conditional to avoid more reloads
} else {
print("none")
connection = false
}
}
setupScene()
print("loaded")
}
要运行的函数:
func sortCColor()->Void{
for (i, val) in customButtons.enumerated(){
val.nature.tag = i
let xDeduct = 6*Int(floor(CGFloat(Int(val.nature.tag)/6)))
let width = Float(bounds.size.width) > 450 ? CGFloat(Int(0.10*Double(colorScrollW))) : CGFloat(Int(0.15*Double(colorScrollW)))
let x = CGFloat(0.0073*bounds.size.width) + CGFloat((colorScrollW+Int(width*0.2))*(i - xDeduct))*0.15 // -6*floor
let y = CGFloat(0.0073*bounds.size.width)
if(val.nature.tag == customButtons.count - 1){
val.nature.setImage(UIImage(named: "art.scnassets/addColor.png")?.resized(to: CGSize(width: CGFloat(width), height: CGFloat(width))), for: .normal)
}
else{val.nature.backgroundColor = val.color}
val.nature.frame = CGRect(x: x , y: y + y*floor(CGFloat(Int(val.nature.tag)/6)) + width*floor(CGFloat(Int(val.nature.tag)/6)), width: width, height: width)
// divisble by 7 for y and use the count for x and dont forget conatainer and scroll extra space
val.nature.layer.cornerRadius = 0.5 * width
val.nature.addTarget(self, action: #selector(chooseCustomColor), for: UIControl.Event.touchDown)
val.nature.addTarget(self, action: #selector(buttonOut), for: UIControl.Event.touchUpInside)
val.nature.addTarget(self, action: #selector(buttonOut), for: UIControl.Event.touchDragExit)
colorContainer.addSubview(val.nature)
}
}
非常感谢您的时间和精力