私はfirebaseから私の場所の値を追加しようとしていると私のアプリ内の注釈に変えようとしています。これは、私が動作していない分で持っているコードです!救いの手を探して、私はこの権利を得ることに非常に近いと感じるが、私は心のブロックを打った!Firebaseのマップへの位置
import UIKit
import Firebase
import MapKit
class ViewController: UIViewController {
@IBOutlet weak var mapView: MKMapView!
let locationsRef = FIRDatabase.database().reference(withPath: "locations")
override func viewDidLoad() {
super.viewDidLoad()
locationsRef.observe(.value, with: { snapshot in
for item in snapshot.children {
guard let locationData = item as? FIRDataSnapshot else { continue }
let locationValue = locationData.value as! [String: Any]
let location = CLLocationCoordinate2D(latitude: locationValue["lat"] as! Double, longitude: locationValue["lng"] as! Double)
let name = locationValue["name"] as! String
self.addAnnotation(at: location, name: name)
}
})
}
func addAnnotation(at location: CLLocationCoordinate2D, name: String) {
// add that annotation to the map
let annotation = MKPointAnnotation()
annotation.title = location["name"] as? String
annotation.coordinate = CLLocationCoordinate2D(latitude: location["latitude"] as! Double, longitude: location["lonitude"] as! Double)
mapView.addAnnotation(annotation)
}
}
私のコードは、現在取り組んでいるが、私はこの問題を取得しています:私は、二重に文字列を変換について何かを読んだ
let location = CLLocationCoordinate2D(latitude: locationValue["lat"] as! Double, longitude: locationValue["lng"] as! Double)
:
のコード行に関連Could not cast value of type "NSTaggedPointerString' (0x10a708d10) to 'NSNumber' (0x109d10488).
この行に文字列はありませんか?誰でも助けてくれますか?
は、あなたが最も可能性の高いあなたのFirebaseデータベースにString
オブジェクトとして座標を格納しているコードの字幕
アップデートエラー
"動作しない" 説明し、サンプルを記載してくださいだけで
let
ここを削除EDIT 2
: いずれかの方法は、ここにあなたのエラーのためのソリューションですあなたのJSONデータ –
ここではあまりにも苦労しています - あなたのメソッド 'addAnnotation'では、辞書はもうありません。既に場所と名前があります。これらの変数を使用してください。 – Russell