Даункаут из '[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 }   
}
Другие вопросы по тегам