从主线程递归导致卡住的文本字段

问题描述

我正在使用递归函数来测试文本字段是否已更新。但是,在调用该函数时,文本字段将冻结并且无法进行编辑。有什么建议吗?

           super.viewDidLoad()
            // Do any additional setup after loading the view.
                    DispatchQueue.global(qos: .default).async {

                        for item in 1...16 {
                            sleep(1)
                            DispatchQueue.main.async {
                                self.inputTextField.becomeFirstResponder()
                                testValue(textField: self.inputTextField,item: item)


                                                }
                                            }
                                        }
        func testValue(textField: UITextField,item: Int) {
            if textField.text == "Enter Data" {
                sleep(1)
                testValue(textField: textField,item: item)

            } else if self.inputTextField.text != "Enter Data" {
                let view = self.view.viewWithTag(item)
                if let btn = view as? UIButton {
                    btn.sendActions(for: .touchUpInside)
                        }
                    }
            }

        }
        
        }

也感到困惑,因为即使默认文本字段值为“ Enter Data”,else条件的计算结果也为“不等于”。因此,这件事令我感到困惑,不胜感激任何建议。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...