这是我试图在UITable为空时显示地图的代码
var mapView:GMSMapView?
func numberOfSections(in tableView: UITableView) -> Int {
if orders.count > 0 {
self.tableview.backgroundView = nil
self.tableview.separatorStyle = .singleLine
return 1
}
mapView = GMSMapView.map(withFrame: CGRect(x: 100, y: 100, width: 200, height: 200), camera: GMSCameraPosition.camera(withLatitude: 51.050657, longitude: 10.649514, zoom: 5.5))
//so the mapView is of width 200, height 200 and its center is same as center of the self.view
mapView?.center = self.view.center
self.tableview.backgroundView = mapView
return 0
}
但是项目崩溃了,原因是
libc ++ abi.dylib:以NSException类型的未捕获异常终止
答案 0 :(得分:0)
问题在于,无论以前的情况如何,你都会返回0
。
func numberOfSections(in tableView: UITableView) -> Int {
if orders.count > 0 {
tableview.backgroundView = nil
tableview.separatorStyle = .singleLine
return 1
} else {
mapView = GMSMapView.map(withFrame: CGRect(x: 100, y: 100, width: 200, height: 200), camera: GMSCameraPosition.camera(withLatitude: 51.050657, longitude: 10.649514, zoom: 5.5))
mapView?.center = view.center
tableview.backgroundView = mapView
return 0
}
}
答案 1 :(得分:0)
好像你没有在AppDelegate中初始化APIkey。只需按照此步骤操作即可。
在AppDelegate中导入此文件。
import GoogleMaps
import GooglePlaces
然后在didFinishLaunchingWithOptions
方法中添加api密钥。
GMSPlacesClient.provideAPIKey("Your key")
GMSServices.provideAPIKey("Your key")
注册App时,您可以从Google Developers Console获取API密钥。
有关详细信息,请查看以下链接: - Developers Console