swift - 线程 0 崩溃
问题描述
我将我的应用程序提交到应用商店,他们说当输入 url 并从键盘按“完成”时它会崩溃,但是我的真实设备、我的测试人员朋友设备和我们在 13.3.1 上测试的模拟器工作正常!无法在这里找到问题所在。
这个来自苹果开发者的崩溃日志:
我的代码:
//MARK:-- TEXTFIELD DELEGATE
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
let detector = try! NSDataDetector(types: NSTextCheckingResult.CheckingType.link.rawValue)
let matches = detector.matches(in: textField.text!, options: [], range: NSRange(location: 0, length: textField.text!.utf16.count))
for match in matches {
guard let range = Range(match.range, in: textField.text!) else { continue }
let url = textField.text![range]
print("return: " + url)
let Turl = String(url)
DispatchQueue.main.async {
self.tableView.reloadData()
}
if Turl.isEmpty {
self.name.becomeFirstResponder()
return false
}else{
self.url.becomeFirstResponder()
UserDefaults.standard.set(Turl, forKey: "URL")
DispatchQueue.main.async {
self.tableView.reloadData()
}
textField.resignFirstResponder()
dismiss(animated: true){
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "load"), object: nil)
}
//apped data to array and save to userDefault
var saved = URLArray as! [String]
var named = nameArray
let PlaylistName = name.text!
if !saved.contains("\(textField.text!)"){
saved.append(Turl)
named.append(PlaylistName)
UserDefaults.standard.set(saved, forKey: "URLs")
UserDefaults.standard.set(named, forKey: "name")
print(named, saved)
self.tableView.reloadData()
}else{
print("was saved")
dismiss(animated: true, completion: nil)
}
}
}
if textField == name{
self.name.resignFirstResponder()
self.url.becomeFirstResponder()
}
self.tableView.reloadData()
return true
}
解决方案
异常具有异常代码= 1(异常中的第二行):
EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001
这通常是强制展开值为nil
.
例如try!
and textField.text!
,或您拥有的任何其他力量展开都可能导致它。相反,如果失败,请使用警卫并从函数返回(可能有错误)。例如:
guard let detector = try? NSDataDetector(types: NSTextCheckingResult.CheckingType.link.rawValue) else {
// Do something if Failed
return;
}
此外,如果您在构建中包含符号文件,则调试起来会容易得多。
推荐阅读
- iframe - iframe 仍然是个好主意吗?
- python - 可移植的 Python/IPython
- php - 登录后WordPress重定向特定用户
- c# - .NET Core 5 控制台日志使用 Serilogs
- javascript - 将一个数字拆分为多个具有递增模式的数字
- python - 我需要面部识别和语音识别项目的帮助(Raspberry Pi 3)
- docker - docker run -v : [Errno 2] 没有这样的文件或目录
- kubernetes - Kubernetes 上的 Jupyterhub 不会访问私有 repo 的 pull secret
- python - 刮
我正在尝试在 Eclipse 中使用 Python 创建一个简单的天气预报。到目前为止,我已经写了这个:
from bs4 import BeautifulSoup import requests def weather_forecast(): url = 'https://www.yr.no/nb/v%C3%A6rvarsel/daglig-tab
- node.js - 如何在 dto [NestJS] 中设置实体类型?