Даункаут из '[PFObject]?' "[PFObject]" разворачивает только дополнительные
Я сохраняю запрос разбора в массив, но я получаю следующую ошибку, если let objects = objects as? [PFObject]
И следующая ошибка происходит Downcast из '[PFObject]?' в '[PFObject]' разворачиваются только дополнительные параметры.
Кто-нибудь знает, как решить это?
func getArray(funcstring: String){
var userGeoPoint: PFGeoPoint
PFGeoPoint.geoPointForCurrentLocationInBackground {
(geoPoint: PFGeoPoint?, error: NSError?) -> Void in
if error == nil {
userGeoPoint = geoPoint!
}
}
var searchQuery: [String] = [String]()
var query = PFQuery(className:"User")
query.whereKey("geoLocation", nearGeoPoint:userGeoPoint)
query.limit = 100
query.findObjectsInBackgroundWithBlock {
(objects: [PFObject]?, error: NSError?) -> Void in
if error == nil {
if let objects = objects as? [PFObject] {
for object in objects {
self.searchQuery.append(object.objectForKey("objectId") as! String)
}
}
} else {
print("\(error?.userInfo)")
}
}
}
1 ответ
objects
объявлен как [PFObject]?
,
Вы собираетесь уменьшить объект до того, что компилятор уже знает.
Просто проверьте nil
if let unwrappedObjects = objects {
for object in unwrappedObjects {
self.searchQuery.append(object.objectForKey("objectId") as! String)
}
}
или еще "быстрее"
if let unwrappedObjects = objects {
self.searchQuery = unwrappedObjects.map{ $0["objectId"] as! String }
}