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

时间:2017-10-29 05:27:37

标签: ios swift mkmapview

我正在阅读一本书中的教程,并希望在没有阅读本书中的代码的情况下继续前进,看看我会根据说明自行提出什么。通过在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
    }

}

1 个答案:

答案 0 :(得分:1)

不同之处在于第一种情况是在初始化视图控制器时创建地图视图。

在第二种情况下,首次访问viewController.view时会懒惰地创建视图。

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