我遵循指南here,但是当我运行我的应用程序时,它崩溃并显示错误
override func viewWillAppear(_ animated: Bool) {
let ud = UserDefaults.standard
let startingX = ud.double(forKey: "startingX")
let startingY = ud.double(forKey: "startingY")
let camera = GMSCameraPosition.camera(withLatitude: startingX, longitude: startingY, zoom: 18.0)
googleMapView.camera = camera
self.googleMapView.mapType = .hybrid
self.googleMapView.settings.scrollGestures = true
self.googleMapView.settings.rotateGestures = true
self.googleMapView.settings.consumesGesturesInView = true
}
我的339是下面函数内的行kotlin.UninitializedPropertyAccessException: lateinit property resultReceiver has not been initialized at com.imincode.earthlings.view.ui.MainActivity.startIntentService(MainActivity.kt:339)
putExtra(AppConstants.RECEIVER, resultReceiver)
private fun startIntentService() {
val intent = Intent(this, FetchAddressIntentService::class.java).apply {
putExtra(AppConstants.RECEIVER, resultReceiver)
putExtra(AppConstants.LOCATION_DATA_EXTRA, lastLocation)
}
startService(intent)
}
声明如下
resultReceiver
现在我不知道如何初始化private lateinit var resultReceiver: AddressResultReceiver
,因为它是resultReceiver
类型,是指南中显示的内部类
AddressResultReceiver
答案 0 :(得分:0)
现在我不知道如何初始化resultReceiver,因为它是AddressResultReceiver类型,是指南中显示的内部类
The lateinet property help you avoid null checks when referencing(?
)
您可以像inner class
那样初始化YourOuterClass().AddressResultReceiver(yourHandler)
您可以检查是否已初始化,即:
if(!resultReceiver.isInitialized)
resultReceiver = YourOuterClass().AddressResultReceiver(yourHandler)