试图访问 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 所以我不知道去哪里。
我无法访问从 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 所以我不知道去哪里。