WKWebView因某些查询而崩溃(iOS Swift)

WKWebView因某些查询而崩溃(iOS Swift),ios,swift,wkwebview,Ios,Swift,Wkwebview,我正在为babynames开发一个类似tinderlike的刷卡应用程序。我创建了一个方法,当你点击你最喜欢的名字旁边的一个按钮时,它会弹出一个窗口(一个带有WKWebView的UIViewController),显示一个带有这个名字含义的google搜索 问题是,对于某些名称,应用程序崩溃,因为URL返回nil。我不明白发生了什么,因为其他名字都很好用。我发现它发生在斯堪的纳维亚名字上,比如“奥德维格”和“奥德洛格” 下面是我的UIViewController类,它会随搜索结果弹出(我已将所有

我正在为babynames开发一个类似tinderlike的刷卡应用程序。我创建了一个方法,当你点击你最喜欢的名字旁边的一个按钮时,它会弹出一个窗口(一个带有WKWebView的UIViewController),显示一个带有这个名字含义的google搜索

问题是,对于某些名称,应用程序崩溃,因为URL返回nil。我不明白发生了什么,因为其他名字都很好用。我发现它发生在斯堪的纳维亚名字上,比如“奥德维格”和“奥德洛格”

下面是我的UIViewController类,它会随搜索结果弹出(我已将所有初始化代码放在layoutSubViews()中,因为我在iOS 12中遇到了一些问题,如果我将WKWebView放在viewDidLoad()中,它将无法正确调整大小):

我在FavoritesViewController类中使用一个segue,如下所示:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "favoritesToWeb" {
        let destination = segue.destination as! WebViewController
        destination.query = "\(searchName)+\(NSLocalizedString("meaning", comment: "meaning"))"
    }
}
希望有人能告诉我我做错了什么。 提前谢谢


Patrick

query
变量需要进行百分比编码,我想这一定是在查询字符串中包含空格字符时崩溃了。使用
addingPercentEncoding
向查询字符串添加百分比编码

参考API:

相关问题:

不能在viewDidLayoutSubviews方法中添加此类代码。只需在viewDidLayoutSubviews方法中管理和设置框架,否则其他代码将加载到viewDidLoad。导致应用程序崩溃的实际URL是什么?为什么你要强制打开url?以下是错误的。destination.query=“(searchName)+(NSLocalizedString(“意思”,注释:“意思”)))”destination.query=searchName++“+”+NSLocalizedString(“意思”,注释:“意思”)@RajaKishan谢谢。我在代码中对其进行了编辑,因此didLayoutSubviews只包含对frame.Omg的更改。谢谢:)我正在读取.txt文件中的所有名称,显然有些名称的结尾有空格,我看不到。完美的修复了它!
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "favoritesToWeb" {
        let destination = segue.destination as! WebViewController
        destination.query = "\(searchName)+\(NSLocalizedString("meaning", comment: "meaning"))"
    }
}