在 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 的建议。
我正在学习一本书中的教程,并且想在不阅读书中代码的情况下继续前进,看看根据说明我自己会想出什么。通过在 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 的建议。