Google 地图对 GMSMapViewType 的使用不明确
Google Maps ambiguous use of a GMSMapViewType
我刚刚升级到 Xcode 7.1。当我尝试设置 GMSMapView 的 mapType 时,出现错误 'kGMSTypeNormal' 的不明确使用、'kGMSTypeTerrain' 的不明确使用以及 'kGMSTypeHybrid'.
的不明确使用
@IBOutlet weak var mapView: GMSMapView!
func myfunc() {
if let myMapType = NSUserDefaults.standardUserDefaults().stringForKey(SettingsTableViewController.History.MapType) {
switch myMapType {
case "kGMSTypeNormal":
mapView.mapType = kGMSTypeNormal
case "kGMSTypeTerrain":
mapView.mapType = kGMSTypeTerrain
case "kGMSTypeHybrid":
mapView.mapType = kGMSTypeHybrid
default: break
mapView.mapType = kGMSTypeNormal
}
} else {
mapView.mapType = kGMSTypeNormal
}
}
如果您打开 GMSMapViewType,您会看到它定义为枚举。在您的 switch 语句中,您将它与错误的字符串进行比较。您最好将它们与整数进行比较。
kGMSTypeNormal = 1
kGMSTypeSatellite = 2
kGMSTypeTerrain = 3
kGMSTypeHybrid = 4
kGMSTypeNone = 5
我不确定为什么,但是将 "GoogleMaps." 放在所有 kGMSTypes 前面(即 GoogleMaps.kGMSTypeNormal)解决了这个问题。
你需要这样使用
mapView.mapType = GoogleMaps.kGMSTypeSatellite
mapView.mapType = GMSMapViewType(rawValue: 1)!
- kGMSTypeNormal = 1
- kGMSTypeSatellite = 2
- kGMSTypeTerrain = 3
- kGMSTypeHybrid = 4
- kGMSType无 = 5
在Swift 3
中使用如下:
.normal
.hybrid
.satellite
.terrain
这是更新后的版本
import UIKit
import GoogleMaps
class ViewController: UIViewController, GMSMapViewDelegate {
var mapView: GMSMapView!
override func viewDidLoad() {
super.viewDidLoad()
mapView = GMSMapView(frame: self.view.bounds)
mapView.animate(toViewingAngle: 45)
mapView.mapType = GMSMapViewType.satellite
self.view = mapView
}
我刚刚升级到 Xcode 7.1。当我尝试设置 GMSMapView 的 mapType 时,出现错误 'kGMSTypeNormal' 的不明确使用、'kGMSTypeTerrain' 的不明确使用以及 'kGMSTypeHybrid'.
的不明确使用@IBOutlet weak var mapView: GMSMapView!
func myfunc() {
if let myMapType = NSUserDefaults.standardUserDefaults().stringForKey(SettingsTableViewController.History.MapType) {
switch myMapType {
case "kGMSTypeNormal":
mapView.mapType = kGMSTypeNormal
case "kGMSTypeTerrain":
mapView.mapType = kGMSTypeTerrain
case "kGMSTypeHybrid":
mapView.mapType = kGMSTypeHybrid
default: break
mapView.mapType = kGMSTypeNormal
}
} else {
mapView.mapType = kGMSTypeNormal
}
}
如果您打开 GMSMapViewType,您会看到它定义为枚举。在您的 switch 语句中,您将它与错误的字符串进行比较。您最好将它们与整数进行比较。
kGMSTypeNormal = 1
kGMSTypeSatellite = 2
kGMSTypeTerrain = 3
kGMSTypeHybrid = 4
kGMSTypeNone = 5
我不确定为什么,但是将 "GoogleMaps." 放在所有 kGMSTypes 前面(即 GoogleMaps.kGMSTypeNormal)解决了这个问题。
你需要这样使用
mapView.mapType = GoogleMaps.kGMSTypeSatellite
mapView.mapType = GMSMapViewType(rawValue: 1)!
- kGMSTypeNormal = 1
- kGMSTypeSatellite = 2
- kGMSTypeTerrain = 3
- kGMSTypeHybrid = 4
- kGMSType无 = 5
在Swift 3
中使用如下:
.normal
.hybrid
.satellite
.terrain
这是更新后的版本
import UIKit
import GoogleMaps
class ViewController: UIViewController, GMSMapViewDelegate {
var mapView: GMSMapView!
override func viewDidLoad() {
super.viewDidLoad()
mapView = GMSMapView(frame: self.view.bounds)
mapView.animate(toViewingAngle: 45)
mapView.mapType = GMSMapViewType.satellite
self.view = mapView
}