gpt4 book ai didi

ios - 在常量初始化中使用 IBoutlet

转载 作者:行者123 更新时间:2023-11-28 07:15:16 25 4
gpt4 key购买 nike

我想在 MapManager 中使用 IBOutlet mapView。要实现此连接,我必须将 mapView 呈现给 MapManager。我认为这样的事情会起作用:

 @IBOutlet var mapView: MKMapView!
var locationManager = CLLocationManager()
var userLocation: MKUserLocation!
let mapManager: MapManager = MapManager(MapView : mapView)

现在,我想知道这样做是否正确。我的意思是,我基本上打算在模型中使用 mapView,这不是最好的做法。那么如何实现这个想法呢?

最佳答案

我认为您的代码不应该编译,因为在初始化 mapManager 时您隐式引用了 self,它在所有类属性都已初始化之前不可用。

我会通过定义一个隐式展开的 mapManager 属性来解决这个问题:

var mapManager: MapManager!

当设置 mapView 时初始化:

@IBOutlet var mapView: MKMapView! {
didSet {
self.mapManager = MapManager(MapView: mapView)
}
}

当然,在引用mapManager之前,您必须确保mapView已经被初始化,否则会引发运行时异常。

关于ios - 在常量初始化中使用 IBoutlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26586848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com