![](/img/trans.png)
[英]Error 9 “Subscript out of range” trying to access an element of a variant array
[英]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 closestUsers = object as PFUser
不會獲取用戶數組,而是當前用戶對象。
我假設您想要數組中的第一個用戶對象。 在這種情況下,您可以從原始數組中獲取第一個對象,而無需對其進行迭代。
var user = (query.findObjects() as? [PFUser])?.firstObject
您的邏輯很奇怪,或者您鍵入了錯誤的內容,或者我完全無法理解您在做什么。
無論哪種方式,您都有一個PFUser
類型的objects
數組。
您將該數組放置在另一個數組中(var最近用戶)。 然后您顯然想要一個用戶。
您是否嘗試過像這樣簡單地進行操作:
而不用像瘋了似的拋棄一切
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;
}
您可能必須在某處添加為PFUser
,但是我不知道快捷方式,所以我不知道在哪里。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.