【发布时间】:2015-02-23 13:41:56
【问题描述】:
如何等到从 parse.com 检索到数据?
这是我的函数,它返回一个空字符串,因为来自 parse.com 的响应太慢了。如果我在成功区域内放置一个断点,它将在需要数据后“长时间”中断。我想有办法让数据同步,所以它会等待?
func getObjectId(localPersonId:NSString) -> NSString{
var currentObjectId:NSString = ""
var query = PFQuery(className:"myClass")
query.whereKey("personId", equalTo:localPersonId)
query.whereKey("groupId", equalTo:self.currentGroupId)
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]!, error: NSError!) -> Void in
if error == nil {
// should not use a for loop since this should
// only return one row
for object in objects {
currentObjectId = object["objectId"] as NSString
}
} else {
// Log details of the failure
NSLog("Error: %@ %@", error, error.userInfo!)
}
}
return currentObjectId
}
在这种情况下,getObjectId 函数将返回一个空字符串。有人吗?
【问题讨论】:
-
您需要使您的
getObjectId function异步。现在,return currentObjectId行在查询完成之前正在执行。 -
是的,这就是问题所在。如何使函数异步?
-
遗憾的是,该链接并没有让我看到我的问题...我想我可能应该使用 findObjectsInBackgroundWithBlock 以外的东西。不确定。新手太多了,不知道什么是最好的方法。
-
您将无法避免使用其中一种异步方法。如果你使用的是 Objective-C,我可以给你写一个答案,不幸的是我还没有掌握 Swift。您是否查看过 Parse 网站上的教程,也许他们已经更新了他们的 iOS 示例/教程应用程序之一以使用 Swift?
标签: ios swift parse-platform pfquery