Bir kullanıcının konumunu getLocationForKey (Geofire) adlı bir işlevle bulmaya çalışıyorum. Konum Firebase'de saklanır. Ben fonk tableview bu işlevi çağırır:GeoFire'ın işlevi getLocationForKey neden aşırı dolduruldu?
MyLocation: [0.0, 0.0]
func getUserLocation(userID: String) -> CLLocation {
var userLocation = CLLocation()
print(userID)
let geoFire = GeoFire(firebaseRef: ref.childByAppendingPath("locations"))
geoFire.getLocationForKey(userID, withCallback: { (location, error) in
if (location != nil)
{
userLocation = CLLocation(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude)
print("userLocation: [\(userLocation.coordinate.latitude), \(userLocation.coordinate.longitude)]")
}
else if (error != nil)
{
print("An error occurred getting the location for \(userID): \(error.localizedDescription)")
}
else
{
print("GeoFire does not contain a location for \(userID)")
}
})
return userLocation
}
Sonuç olarak, ben bu olsun şu şekildedir:
// Get user Distance
var myLocation = CLLocation()
myLocation = getUserLocation(ref.authData.uid)
print("myLocation: [\(myLocation.coordinate.latitude), \(myLocation.coordinate.longitude)]")
getUserLocation görünüyor userLocation: [123.456, 123.456]
bana garip geliyor, çünkü bir şekilde getLo'daki kod cationForKey atladı, ilk ve sonra userLocation myLocation olsun. Nedenini bilen var mı? Herhangi bir yardım takdir, teşekkürler!
Senkronize olmayan ağ iletişimi göz önünde bulundurulduğunda Verileri hücrelere ayırdığım tablo görünümü işlevinde getUserLocation öğesini çağırmak iyi bir fikir olmayabilir. Aksi takdirde "ölümcül hata" alırdım: İsteğe bağlı bir değer çıkarılırken beklenmedik bir şekilde sıfır bulunur "Kullanıcı konumunun nereden alınacağını nerede/hangi işlevde kullanacağımı biliyor musunuz? – yoshimoshi
@yoshimoshi Bu, bir tabloda sunulan kullanıcıların listesi Kendi adı ve konumu gibi bir şeyle mi görün? – Jay
Evet bu doğru, ancak bu görüntüleyiciyi yüklemeden önce tüm gerekli bilgileri yükleyerek bu sorunu çözdüm. Bunu yapmanın ortak yolu bu mu? – yoshimoshi