在 class 范围内显式创建视图对象与 loadView 函数之间有区别吗?

Is there a difference between creating a view object explicitly in the scope of the class vs the loadView function?

我正在学习一本书中的教程,并且想在不阅读书中代码的情况下继续前进,看看根据说明我自己会想出什么。通过在 loadView() 函数之外全局创建 MKMapView 对象,我的代码有点不同,但是本书在 loadView() 函数内部创建了 MKMapView 对象。这两个过程都有效,所以我想知道 iOS 开发社区之间是否存在很大差异或偏好?

提前致谢。

我的代码:

import Foundation
import UIKit
import MapKit

class MapViewController: UIViewController {

    var mapView: MKMapView = MKMapView()

    override func loadView() {
        view = mapView
    }

}

本书的代码:

import Foundation
import UIKit
import MapKit

class MapViewController: UIViewController {

    var mapView: MKMapView!

    override func loadView() {
        mapView = MKMapView()
        view = mapView
    }

}

区别在于第一种情况下,地图视图是在视图控制器初始化时创建的。

在第二种情况下,视图是在首次访问 viewController.view 时延迟创建的。

我推荐第二种方法,因为它符合 Apple 的建议。