Я решил обновить XCode до версии 11.1 (11A1027) вчера, и я думаю, что либо обнаружил ошибку, либо изменился синтаксис Swift.
У меня почти пустой viewController с двумя кнопками, одна из которых закрывает ViewControllerа другой отображает предупреждение.
@IBAction func search_BTN(_ sender: Any) {
//1. Create the alert controller.
let alert = UIAlertController(title: "Some Title", message: "Enter a text", preferredStyle: .alert)
//2. Add the text field. You can configure it however you need.
alert.addTextField { (textField) in
textField.text = "Some default text"
}
// 3. Grab the value from the text field, and print it when the user clicks OK.
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { [weak alert] (_) in
let textField = alert?.textFields![0] // Force unwrapping because we know it exists.
print("Text field: \(textField?.text)")
}))
// 4. Present the alert.
self.present(alert, animated: true, completion: nil)
}
При удалении кода addTextField
появится предупреждение * ТОЛЬКО . Иначе приложение зависает, и я вынужден закрыть его. То, что я думаю, происходит, когда либо отображается пустой диалог, либо программа застревает в цикле. Я думаю, что причина в том, что приложение не падает, а я не получаю сообщений об ошибках. Единственное, что я получаю, это:
XPC connection interrupted
Что, насколько мне известно, означает, что время ожидания приложения истекло.
То, что я пробовал
- Другие контроллеры представления (есть та же проблема)
- Другой проект XCode (Есть та же проблема)
- Xcode 10 (Это сработало)
- Очисткапроект
То, что я не устал
- Физическое устройство iOS (просто симулятор)
- Другой компьютер, использующий последнюю версию Xcode
Кто-нибудь может подтвердить эту ошибку? Кто-нибудь знает обходной путь к этой проблеме? Или есть другой способ отображения оповещения с текстовым полем без установки модулей (мне нравится использовать как можно больше сторонних кодов).
EDIT1 : Я думаю, что это могут быть просто текстовые поля в целом. Я устал обойти проблему, просто используя текстовое поле в контроллере представления, но я все еще получаю ту же проблему. Я также устал от очистки проекта и восстановления. То же самое случилосьВероятно, удалит и переустановит Xcode. Если это не сработает, возможно, мне придется попробовать установить бета-версию.
EDIT2 : У меня была сумасшедшая идея сделать что-то, что имеет смысл. Я обновил свою ОС до Каталины, и это решило проблему. Если кто-то знает, почему это произошло, мне было бы интересно узнать. Предполагая, что это связано с кэшированием некоторых типов.