在类的范围中显式创建一个视图对象与loadView函数有什么不同?
问题描述:
我正在关注一本书中的教程,并希望继续阅读本书中的代码,以便根据说明查看我自己想出的内容。我的代码与loadView()函数之外全局创建MKMapView对象有点不同,但本书在loadView()函数内部创建了MKMapView对象。这两个过程都起作用,所以我想知道iOS开发社区是否有很多不同或偏好?在类的范围中显式创建一个视图对象与loadView函数有什么不同?
预先感谢您。
我的代码:
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
时,视图被延迟创建。
我推荐第二种方法,因为这符合苹果的建议。