试图访问 SWIFT 中的 Parse 查询数组的下标

trying to access the subscript of a Parse query array in SWIFT

我无法访问从 Parses 数据库查询的对象数组的零点下标。代码:

 var query = PFUser.query()
    query.whereKey("location", nearGeoPoint: geopoint, withinMiles: self.distance)
    query.whereKey("objectId", notContainedIn: self.matches)
    query.whereKey("objectId", notEqualTo: self.user.objectId)
    query.limit = 500
    var objects = query.findObjects()
    if objects != nil {
      for object in objects {

            var closestUsers = object as PFUser
            var closestUser = closestUsers[0] //COMPILER ERROR: Type 'String!' does not conform to protocol 'IntegerLiteralConvertible'
    }

如代码所示,我收到一个编译器错误,指出:类型 'String!' 不符合协议 'IntegerLiteralConvertible'` 我无法弄清楚为什么它不起作用?

提前致谢。

我很难理解您的代码的用途,但我猜...

尝试:

var query = PFUser.query()
query.whereKey("location", nearGeoPoint: geopoint, withinMiles: self.distance)
query.whereKey("objectId", notContainedIn: self.matches)
query.whereKey("objectId", notEqualTo: self.user.objectId)
query.limit = 500
var users = query.findObjects() as [PFUser]
var closestUser = users.firstObject

在你的代码中

var objects = query.findObjects() // Get response
if objects != nil { // Check if it is nil
  for object in objects { // Iterate over the objects

        var closestUsers = object as PFUser // Get the current user object (I presume here you want an array of users?)
        var closestUser = closestUsers[0] // Get the first user?
}

var closestUsers = object as PFUser 获取的不是用户数组,而是当前用户对象。

我假设您想要数组中的第一个用户对象。在这种情况下,您可以只从原始数组中获取第一个对象而无需对其进行迭代。

var user = (query.findObjects() as? [PFUser])?.firstObject

你的逻辑很奇怪,你要么打错了,要么我完全不明白你在做什么。

无论哪种方式,您都有一个类型为 PFUser.

objects 数组

您将该数组放入另一个数组 (var closestUsers)。 然后你显然想要一个用户。

你有没有尝试过简单地这样做:

而且不必像疯了似的抛出所有东西

var query = PFUser.query()
    query.whereKey("location", nearGeoPoint: geopoint, withinMiles: self.distance)
    query.whereKey("objectId", notContainedIn: self.matches)
    query.whereKey("objectId", notEqualTo: self.user.objectId)
    query.limit = 500
    var objects = query.findObjects()
    if objects != nil {
      for object in objects {

            var closestUser = objects.firstObject;
    }

你可能需要在某处添加 as PFUser 但我不知道 swift 所以我不知道去哪里。