2016-09-29 11 views
0

私は最近、迅速な学習を始め、今すぐ自分のマップを作成する次のステップを踏み出しました。私はすでにマップキットを使ってアプリを作ってきましたが、私はデザイン機能が好きなので、マップボックスで私の運を試しています。引数タイプ '[MGLPointAnnotation]'が予想されるタイプ 'MGLAnnotation'に適合しません

私は自分の位置情報を保持する辞書を作成した後、ループを作成しています。このループは地図にデータを追加します。しかし、私は、私は次のエラーを取得するよう、今こだわっています:

「引数の型は 『[MGLPointAnnotation]』期待タイプに準拠していない 『MGLAnnotation』

私は私の辞書にmapView.addAnnotationしようとすると、この問題が発生しました私はこれまでに辞書の値をアンラップすることと関係があることを知っていますが、mapView.addAnnotation(!MGLAnnotationというアノテーション)を書いてアンラップを強制すると、アプリがクラッシュします。

誰かが私を見せてくれますか?正しい方向に?私は修正プログラムを探しているわけではありませんが、私は物事が間違っている場所を見つけることに多くの。ありがとうたくさん!ありがとうたくさん!ありがとうたくさん!ありがとう!

はここのコードです:MGLAnnotationは単一のオブジェクトである間は、他の単一のオブジェクトに何かの配列をキャストしようとしている

let locations = [ 
     ["name" : "Apple Inc.", 
     "latitude" : 37.33187, 
     "longitude" : -122.02951, 
     "mediaURL" : "http://www.apple.com"], 
     ["name" : "BJ's Restaurant & Brewhouse", 
     "latitude" : 37.33131, 
     "longitude" : -122.03175, 
     "mediaURL" : "http://www.bjsrestaurants.com"] 
    ] 

    var annotations = [MGLPointAnnotation]() 

    for dictionary in locations { 
     let latitude = CLLocationDegrees(dictionary["latitude"] as! Double) 
     let longitude = CLLocationDegrees(dictionary["longitude"] as! Double) 
     let coordinate = CLLocationCoordinate2D(latitude: latitude, longitude: longitude) 
     let name = dictionary["name"] as! String 
     let discription = dictionary["mediaURL"] as! String 
     let annotation = MGLPointAnnotation() 
     annotation.coordinate = coordinate 
     annotation.title = "\(name)" 
     annotation.subtitle = "\(discription)" 
     annotations.append(annotation) 
    } 

mapView.addAnnotation(annotations as! MGLAnnotation) 
+0

この問題は引き続き発生します。誰かが解決策を持っている場合、または私が詳細情報を見つけることができる一般的な方向性がある場合は、本当に感謝します! – MarkAnon

答えて

0

... annotationsは、配列です。

だから、あなたはまた、引数としてだけ1オブジェクトを期待されているメソッドaddAnnotationを使用している...しかし、あなたのエラーを削除する必要があります mapView.addAnnotation(annotations as! [MGLAnnotation])

mapView.addAnnotation(annotations as! MGLAnnotation)

を変更。したがって、試してみてください: mapView.addAnnotation(annotations[0])

注:私の最初の作品は、エラーの解決方法を示しています。「1つだけのオブジェクトが必要です」という状況のために、それでも問題はありません。

これは役に立ちます。いくつか説明します:)

関連する問題