簡體   English   中英

嘗試訪問SWIFT中解析查詢數組的下標

[英]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 PFUservar 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM