MKMapView 错误和 SFViewController 错误

MKMapView error and SFViewController error

每当我尝试使用 mapview 时都会出错

"Use of undeclared type of MKMapView"

和"Use of undeclared type MKMapViewDelegate."

我在尝试调用 SFSafariViewController 时也遇到错误。

前两个,代码是

class pinViewController: UIViewController, UITextFieldDelegate, MKMapViewDelegate {

    @IBOutlet weak var locationTextField: UITextField!
    @IBOutlet weak var addPinBtn: UIButton!
    @IBOutlet weak var linkTextField: UITextField!
    @IBOutlet weak var mapView: MKMapView!

Safari 视图控制器代码是

@IBAction func signUp(_ sender: AnyObject) {

        let url = NSURL(string:"https://www.udacity.com/account/auth#!/signup")
        let safariVC = SFSafariViewController(url: url as! URL)
        present(safariVC, animated: true, completion: nil)

您需要 import MapKit framework to access Apple Map related class and Safari​Services 框架才能访问 SFSafariViewController。所以只需在 pinViewController

中添加两个 import 语句
import MapKit
import Safari​Services

记得如果 class 名称以大写字母开头,所以只需将 pinViewController 更改为 PinViewController

将这些添加到您的 class

import MapKit import Safari​Services

如果您仍然遇到错误。
打开你的项目文件
Select你的目标
转到构建阶段
转到 Link Binary With Libraries
点击 + 并在搜索时添加 MapKitSafariServices

构建并运行。