9
4

More than 5 years have passed since last update.

iOS11からweakの扱いが変わった?

Last updated at Posted at 2018-04-13

以下のコードには問題があります。
しかし、iOS11では正常に動作し、 iOS10,9 ではクラッシュします。

通常であればクラッシュするのが正しいですが、
iOS11から動作が変わったよ〜など理由を知っている方がいましたら、コメントいただけると嬉しいです。
(Apple公式のソースなど)

問題のあるコード

import UIKit
import WebKit

class ViewController: UIViewController {

    weak var webView: WKWebView!

    override func viewDidLoad() {
        super.viewDidLoad()
        setupWebView()
    }

    private func setupWebView() {
        webView = WKWebView(frame: .zero) // UIView
        webView.uiDelegate = self
        webView.navigationDelegate = self
        view.addSubview(webView)
        webView.load(URLRequest(url: URL(string: "https://google.com")!))
    }
}

extension ViewController: WKUIDelegate, WKNavigationDelegate { }

スクリーンショット 2018-04-13 15.04.34.png

問題を修正したコード

    private func setupWebView() {
        let webView = WKWebView(frame: .zero)
        webView.uiDelegate = self
        webView.navigationDelegate = self
        view.addSubview(webView)
        webView.load(URLRequest(url: URL(string: "https://google.com")!))
        self.webView = webView
    }

なぜiOS11は問題の有るコードで動作するのか

求む :pray:

環境

Xcode 9.2

Original

9
4
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
4