【问题标题】:Parse query returning nothing from findObjectsInBackgroundWithBlock从 findObjectsInBackgroundWithBlock 解析查询不返回任何内容
【发布时间】:2015-02-26 19:15:46
【问题描述】:

编辑: 我更改了问题标题。 我将函数更改为 findObjectsInBackgroundWithBlock -

override func viewDidAppear(animated: Bool) {
    let predicate = NSPredicate(format: "username != '"+userName+"'")
    var query = PFQuery(className: "_User", predicate: predicate)
    var objects = query.findObjectsInBackgroundWithBlock({
        (objects:[AnyObject]!, error: NSError!) in
        if(error == nil){

            for object in objects {
                self.resultsUsernameArray.append(object.username)
                self.resultsProfileNameArray.append(object.email)
                self.resultsImageFiles.append(object["photo"] as PFFile)

                self.resultsTable.reloadData()
            }
        }else{
            println("error in quert execution \(error)")
        }
    })
}

有一个警告[推断变量'objects'具有'Void'类型,这可能是意外的],并且代码仍然没有返回任何内容。我的 Parse 帐户中有 3 个用户用于此应用程序。

现在没有错误了,我想这至少是好的?



我是 xcode 的新手,不知道如何搜索这个函数。我在 Parse 上遇到了与其他人一样的问题。我的 find 查询工作了两次,现在(没有更改代码)它停止返回任何内容。我想按照建议进行操作并“中断 warnBlockingOperationOnMainThread() 以进行调试”,但我能找到的唯一项目搜索功能(右键单击项目并执行“在选定组中查找”)并没有带来任何东西。

那么,如何找到这个函数来添加断点呢?或者,更好的是,为什么这个查询停止工作?

override func viewDidAppear(animated: Bool) {
    let predicate = NSPredicate(format: "username != '"+userName+"'")
    var query = PFQuery(className: "_User", predicate: predicate)
    var objects = query.findObjects()

    for object in objects {
        self.resultsUsernameArray.append(object.username)
        self.resultsProfileNameArray.append(object.email)
        self.resultsImageFiles.append(object["photo"] as PFFile)

        self.resultsTable.reloadData()
    }
}

谢谢!

【问题讨论】:

  • 你不应该在主线程中使用findObjects。你永远不想阻塞主线程。请改用findObjectsInBackgroundWithBlock
  • 如果您要求进行更广泛的搜索,您会得到任何结果吗? (删除谓词以获取所有用户)
  • 不,我没有。我把它改成这样:var query = PFQuery(className: "_User"), 还是什么都没有。

标签: xcode swift parse-platform


【解决方案1】:

发件人:https://developer.apple.com/library/mac/recipes/xcode_help-breakpoint_navigator/articles/adding_a_symbolic_breakpoint.html

在断点导航器的左下角,单击添加按钮。

选择添加符号断点。

在符号字段中输入符号名称。

如果符号在多个库中声明,请在模块字段中输入相应库的名称。

要指定仅在表达式计算结果为真时暂停程序执行,请在条件字段中输入表达式。

点击完成。

【讨论】:

  • 啊,谢谢,我从来没有用过编辑器用这种方法制作断点,也不知道会检查文档中与语言无关的东西。
猜你喜欢
  • 1970-01-01
  • 2012-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-24
  • 2013-09-10
相关资源
最近更新 更多