【发布时间】: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