Swift Xcode 找不到 MapKit 作为出口
Posted
技术标签:
【中文标题】Swift Xcode 找不到 MapKit 作为出口【英文标题】:Swift Xcode cant find MapKit as an outlet 【发布时间】:2016-01-12 15:25:45 【问题描述】:经过大量研究,我认为我发现了我的编码问题。
我正在尝试设置一个应用程序,用户可以在其中看到他们所在的位置。
我总是收到一个错误提示
在展开可选值时意外发现 nil 致命错误 (lldb)
并且错误显示为 Thread 1: EXC_BAD_INSTRUCTION 在这一行:
self.mapView.showsUserLocation = true
当我尝试删除该行时,另一个 .mapView 上会显示完全相同的错误。所以错误出现在我使用我的 mapkit 和 IBAOutlet(mapView) 的每一行。
我似乎无法弄清楚问题所在。当我为 mapkit 设置属性时,我去了 Main.Storyboard -> CTR + 拖动 -> ViewController.swift 并将其命名为“mapView”
感谢您的宝贵时间
这是我所有的代码
import UIKit
import Parse
import CoreLocation
import MapKit
class ViewController: UIViewController, CLLocationManagerDelegate, MKMapViewDelegate
@IBOutlet weak var mapView: MKMapView!
let locationManager = CLLocationManager()
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.locationManager.delegate = self
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
self.locationManager.requestWhenInUseAuthorization()
self.locationManager.startUpdatingLocation()
self.mapView.showsUserLocation = true
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
// MARK: - Location Delegate Methods
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
let location = locations.last
let center = CLLocationCoordinate2D(latitude: location!.coordinate.latitude, longitude: location!.coordinate.longitude)
let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 1, longitudeDelta: 1))
self.mapView.setRegion(region, animated: true)
self.locationManager.stopUpdatingLocation()
func locationManager(manager: CLLocationManager, didFailWithError error: NSError)
print("Error:" + error.localizedDescription)
【问题讨论】:
您是否尝试过移除情节提要中的插座连接并重新连接? 【参考方案1】:这似乎是时间(或界面构建器连接)问题。
为避免这种情况,请尝试将插座的类型更改为 MKMapView?
并使用可选的合并,如下所示:
self.mapView?.showsUserLocation = true
这至少可以解决导致崩溃的时间问题,以便您可以更准确地查明问题。
如果崩溃后没有显示地图视图,则可能不是时间问题,而是界面构建器连接问题。然后确保将地图视图连接到插座。
【讨论】:
欧凯!这个作品!我不确定它是否会显示我的位置!但它确实显示了苹果!但是,这是什么意思?怎么了? 你是否使用过模拟器?;) 是的,先生!再次,谢谢你。不敢相信,经过 2 天的搜索并试图弄清楚,我只需要一个问号......【参考方案2】:从 var MapView 中删除“弱”。如果您没有强参考,则插座将立即取消分配。
【讨论】:
以上是关于Swift Xcode 找不到 MapKit 作为出口的主要内容,如果未能解决你的问题,请参考以下文章
为啥找不到 Swift 4 语言的 Xcode 目标 c 接口标题名称
Xcode 7.3 找不到“Project-Swift.h”文件
iOS XCode - 为Profile构建时找不到Swift类
dyld:库未加载...原因:找不到合适的图像 Xcode Swift
升级到 XCode 6.3.2 后核心数据模型找不到自动生成的实体类(使用 Objective-C 而不是 Swift)