2017-10-29 55 views
0

我正在關注一本書中的教程,並希望繼續閱讀本書中的代碼,以便根據說明查看我自己想出的內容。我的代碼與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 
    } 

} 

回答

1

的區別是在第一種情況下創建地圖視圖權當視圖控制器初始化。

在第二種情況下,當第一次訪問viewController.view時,視圖被延遲創建。

我推薦第二種方法,因爲這符合蘋果的建議。

相關問題