我正在尝试访问 wkWebview 的 backList,我编写了下面的代码来查找它。 每当我第一次尝试访问它时,下面的代码都可以正常工作,但是当我再次尝试第二次访问 wkwebview 的后备列表时,我会遇到代码访问错误的崩溃:EXC_I386_GPFLT
下面是我写的代码:
let backList = webView.backForwardList.backList
let count = backList.count
for item in backList[0..<count] {
print(item.title)
}
我在第一行就崩溃了。 谁能指导我崩溃的原因是什么?
你尝试过这样的事情吗
for page in webView.backForwardList.backList {
print("User visited \(page.title) \(page.url.absoluteString)")
}
这样做:
let backList = webView.backForwardList.backList
您正在
backList
内部创建一个对 backForwardList
的更强引用,这意味着您要冒险寻址未分配的内存单元,因为在执行此操作时 backList
可能会发生更改:
backList[0..<count]
WKBackForwardList
是一个引用类型对象,可能会同时在任何其他地方被修改。如何处理是你自己的事,但解决问题的最标准方法是使用 copy 方法进行复制,以避免像你这样的错误。