0

在我的 swift iOS 应用程序中,我安装了 bolts 框架,在桥接头文件中我得到了这个

#import <FacebookSDK/FacebookSDK.h>
#import <Parse/Parse.h>
#import <ParseFacebookUtils/PFFacebookUtils.h>
#import <Bolts/Bolts.h>

所以它应该工作。但是,我无法访问此框架中的任何方法,例如 findAsync 或 continueWithSuccessBlock。他们不被认可。我错过了重点吗?如何识别螺栓方法框架?

4

2 回答 2

1

Bolts 文档指出您需要自己实现 findAsync:。

对于本文档中的示例,假设有一些常见 Parse 方法的异步版本,称为 saveAsync: 和 findAsync:,它们返回一个任务。在后面的部分中,我们将展示如何自己定义这些函数。

您可以按照这些示例创建自己的“异步”函数。请注意本节的最后一句话:

创建 saveAsync:、findAsync: 或 deleteAsync 也同样容易:

这是 findAsync 的一个实现:

func findAsync(query:PFQuery) -> BFTask {
    var task = BFTaskCompletionSource()
    query.findObjectsInBackgroundWithBlock {
        (objects, error) -> Void in
        if error == nil {
            task.setResult(objects)
        } else {
            task.setError(error)
        }
    }
    return task.task
}
于 2015-03-31T17:35:45.857 回答
0

我随机发现语法与记录的所有内容不同。文档指出,要在查询中访问 BFTask,您必须键入:

var query = PFQuery(className:"Student")
findAsync(query).continueWithSuccessBlock

原来我的版本中不存在“findAsync”?!相反,我可以通过以下方式访问它:

query.findObjectsinBackground()

这将返回一个 BFTask,然后我可以访问其他 Bolts 代码,例如 continueWithBlock。

于 2015-02-25T11:58:23.953 回答