我正在将一个解析查询保存到一个数组中,但是我把下面的错误放在if let objects = objects as?PFObject
下面的错误从'PFObject?‘开始向下转换。to '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)")
}
}
}
发布于 2015-11-28 21:25:07
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 }
}https://stackoverflow.com/questions/33971672
复制相似问题