0

我正在测试一些用户可能面临的情况,即他们可能会在没有互联网连接的情况下打开应用程序,并且在某些时候,在使用应用程序时连接会重新出现,因此我希望他们检索他们的数据。数据是从后端检索的,它被附加到数组中,但奇怪的是需要遵循的函数没有完全执行,我得到一个线程错误。以下是相关的代码块:

有问题的数组与 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)
        }
    }
    

非常感谢您的时间和精力

4

0 回答 0