weak可能只适用于类和类绑定协议类型而不是< >

问题描述 投票:7回答:4

我正在尝试使用GMSMapView添加地图,但是当我为视图创建插座时,我遇到了错误。

以下是代码段:

import UIKit
import GoogleMaps

class MapViewController: UIViewController {

    @IBOutlet weak var mapVIew: GMSMapView!
    @IBOutlet weak var mapCenterPinImage: UIImageView!
    @IBOutlet weak var pinImageVerticalConstraint: NSLayoutConstraint!
    var searchedTypes = ["bakery", "bar", "cafe", "grocery_or_supermarket", "restaurant"]
    let locationManager = CLLocationManager()

    override func viewDidLoad() {
        super.viewDidLoad()
        locationManager.delegate = self
        locationManager.requestWhenInUseAuthorization()
    }
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "Types Segue" {
            let navigationController = segue.destinationViewController as! UINavigationController
            let controller = navigationController.topViewController as! TypesTableViewController
            controller.selectedTypes = searchedTypes
            controller.delegate = self
        }
    }
}

我遇到了以下错误

@IBOutlet weak var mapVIew: GMSMapView!:
  1. weak只能应用于类和类绑定协议类型而不是<>
  2. 使用未声明类型“GMSMapView”

请有人帮助我

ios xcode swift dictionary
4个回答
3
投票

注意:更新此答案以避免误解,因为我之前已经回答错误。谢谢@ Inn0vative1指出错误

为此,您必须导入MapKit

import MapKit

您的视图控制器未确认协议,请确认qazxsw poi协议

CLLocationManagerDelegate

9
投票

明确的答案不是这个问题的正确答案。如果其他人遇到此问题,问题是所需的框架未导入。在这种情况下,GoogleMaps。对此的修复是在文件添加的顶部

class MapViewController: UIViewController,CLLocationManagerDelegate {
}

另一个例子是如果在添加MkMapView后出现错误。

import GoogleMaps

为此,您必须导入MapKit

@IBOutlet weak var mapView: MKMapView

0
投票

如果未导入包含控件的库,则会出现此问题。

例如,如果我们尝试为PDFView控件创建IBOutlet并且未导入Quartz库,则会弹出此错误。


0
投票

最近我也遇到了这个问题。我通过取消选中目标成员资格import MapKit 来修复此问题。我的一个文件检查了--xxxTests目标。

© www.soinside.com 2019 - 2024. All rights reserved.