에서 얻었다. 나는 Pins = PinColorAnotation 배열을 가지고 있는데, Pins.append (pinas)를 호출하고 Pins.count를 출력 할 때 나는 항상 0을 얻는다. 왜 그럴까? 하지만 루프 내부에서 print를 호출하면 40이라고 표시됩니다. 문제는 내가 firebase에서 다운로드 한 후에 핀을 정렬하고 관리해야한다는 것입니다. 그러나 나는 기울인다. 그 문제를 해결하는 방법? 이 같은처리하는 방법에 데이터가 나는 다음과 같은 코드가 중포 기지
ref.child("skelbimai").observeSingleEvent(of: .value, with: {(snapshot) in
for child in (snapshot.children.allObjects as? [DataSnapshot])!{
let pinas = PinColorAnotation(color: UIColor.red)
pinas.coordinate = CLLocationCoordinate2D(latitude: child.childSnapshot(forPath: "lat").value as! Double, longitude: child.childSnapshot(forPath: "lon").value as! Double)
pinas.pinColor = Kategorija(child.childSnapshot(forPath: "cat").value as! Int).Color
pinas.title = String(Kategorija(child.childSnapshot(forPath: "cat").value as! Int).Name)
pinas.subtitle = String(child.childSnapshot(forPath: "price").value as! Double)
self.Map.addAnnotation(pinas)
}
})
첫째, Firebase 데이터는 비동기식이므로 데이터를 언제 검색했는지 알고 싶으면 완료 핸들러가 필요합니다. 두 번째로 언제 Map 배열을 인스턴스화합니까? – Paulo