weak只能应用于类和类绑定协议类型而不是&lt; <errortype>&gt;

时间:2016-06-24 04:27:03

标签: ios xcode swift dictionary

我尝试使用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只能应用于类和类绑定协议类型而不是&lt;&gt;
  2. 使用未声明类型&#34; GMSMapView&#34;
  3. 请有人帮帮我

4 个答案:

答案 0 :(得分:9)

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

import GoogleMaps

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

@IBOutlet weak var mapView: MKMapView

为此,您必须导入MapKit

import MapKit

答案 1 :(得分:3)

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

为此你必须导入MapKit

import MapKit

您的viewController未确认协议,请遵守CLLocationManagerDelegate协议

class MapViewController: UIViewController,CLLocationManagerDelegate {
}

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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