【问题标题】:Error with Parse findObjectsInBackgroundWithBlock in Swift在 Swift 中解析 findObjectsInBackgroundWithBlock 时出错
【发布时间】:2016-01-04 13:07:57
【问题描述】:

我正在尝试使用 findObjectsInBackgroundWithBlock 从 Parse 的服务器中检索用户名。我希望将结果存储在 NSArray 中,但代码中出现错误。 就是这样:

let query: PFQuery = PFUser.query()!
    query.orderByAscending("username")
    query.whereKey("username", notEqualTo: myUserId as! String)

query.findObjectsInBackgroundWithBlock {(objects:NSArray?, error:NSError?) -> Void in

    }

我收到了这个错误:

无法将类型 '(NSArray?, NSError?) -> Void' 的值转换为预期的参数类型 'PFQueryArrayResultBlock?'

我知道更改“NSArray”时一切正常?到'[PFObject]?',但我想成为一个数组。我该如何解决这个问题?

【问题讨论】:

    标签: arrays swift parse-platform


    【解决方案1】:

    您需要执行以下操作: 声明:

    var array:NSArray = NSArray()
    
    
    query.findObjectsInBackgroundWithBlock {(objects:PFObject?, error:NSError?) -> Void in
    
    if error != nil {
    print("error")
    } else {
    if let objects = objects{
    for object in objects {
    
    self.append(object)
    
    }
    
    }
    
    }
    
    
        }
    

    【讨论】:

    • 我有一个名为“chatMatesArray”的 NSMutableArray。我希望应用程序将用户名存储在该 NSMutableArray 中,但它没有 .append 函数。只是一个不能与 PFObject 一起使用的 .addObject。
    • 对不起,我只是在用 java 写一些随机代码。尝试将 PFObject 转换为 AnyObject。然后 addObject / addElement.
    【解决方案2】:

    您不能在回调参数中强制转换。您的回调需要尊重将提供的类型,然后您在回调中的代码可以改变提供的参数并存储它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 2020-04-30
      相关资源
      最近更新 更多