私はマップビュー上のユーザの現在位置を表示しようとしているが、私はここの場所マネージャ機能「CLLocation」のダウンキャスト'CLLocation'はオプションをアンラップします。あなたは '!'を使うつもりでしたか?
の最初の行にエラーを取得していますが、私のコードは
あるimport UIKit
import MapKit
class FirstViewController: UIViewController, CLLocationManagerDelegate {
@IBOutlet weak var mapkitView: MKMapView!
var locationManager: CLLocationManager!
override func viewDidLoad()
{
super.viewDidLoad()
if (CLLocationManager.locationServicesEnabled())
{
locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestAlwaysAuthorization()
locationManager.startUpdatingLocation()
}
}
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{
let location = locations.last as! CLLocation
let center = CLLocationCoordinate2DMake(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude)
let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01))
self.mapkitView.setRegion(region, animated: true)
}
}
エラーI 「CLLocation」のダウンキャストですか? 「CLLocation」にのみoptionalsをアンラップ;「!」?!あなたが使用することを意味した
をライン上の場所を聞かせて= CLLocation
としてlocations.last私は今日だけ迅速に開始そう私と一緒に 任意の助けをされて裸してくださいあなたが力鋳造CLLocation
からOptional
CLLocation
です
あなたは 'として必要はありません!配列には 'CLLocation'が含まれているので、単に' locations.last! 'と言うことができますが、しないでください。条件付きアンラップ 'を使用する場合は、let location = locations.last {'。しかし、 'MKMapView'のドキュメントを読んでいると、ユーザ追跡モードを有効にすると、これをすべて行うことができます。 – Paulw11
ありがとう私は今何かエラーが出ることはありませんが、それが実行されると、私の場所がない地図が表示されます。 – Will
ロケーションへのアクセスを許可するよう求められましたか?あなたはシミュレータまたは実際のデバイスでテストしていますか?シミュレータの場合は、メニューから位置をシミュレートしましたか?実際のデバイスであれば、ロケーションフィックスがありますか? – Paulw11