WKWebView 保留自己

时间:2021-04-21 15:15:33

标签: swift wkwebview

比较以下测试:

func testWebView_dealloc() {
    var obj: WKWebView? = WKWebView()
    weak var objUnderTest = obj

    obj = nil

    XCTAssertNil(obj) // true
    XCTAssertNil(objUnderTest) // false
}

func testCustomObject_dealloc() {
    class MyClass {}

    var obj: MyClass? = MyClass()
    weak var objUnderTest = obj

    obj = nil

    XCTAssertNil(obj) // true
    XCTAssertNil(objUnderTest) // true
}

WKWebView 似乎根本没有解除分配,而自定义类解除分配就好了。

我在这里遗漏了什么还是这是 WKWebView 的错误?

如果像这样简化会更奇怪:

weak var obj = WKWebView() // Instance will be immediately deallocated because variable 'obj' is 'weak'

print(obj) // Optional(<WKWebView: 0x7facee832200; frame = (0 0; 0 0); layer = <CALayer: 0x600000fb6ee0>>)

你说立即解除分配?我猜不是。

0 个答案:

没有答案
相关问题