如何在必须返回某些值的函数中实现异步任务?

时间:2015-11-21 11:05:44

标签: swift asynchronous parse-platform

我正在使用异步操作(使用解析SDK) 我创建了一个这样的函数:

SymPy 0.7.7dev

问题是在控制台中我得到一条消息:

let result = try query.fromLocalDatastore().findObjects()
return result

我认为这是一个糟糕的设计,我正在寻找解决方案。
我用Warning: A long-running operation is being executed on the main thread. Break on warnBlockingOperationOnMainThread() to debug. 更改了findObjects,但问题是异步性质,所以我从来没有从函数中得到结果(实际上它总是迟到:))。
我的问题是:

有没有办法运行此代码,但要避免在控制台中发出警告?

我是对的,这是在函数中编写这段代码的坏方法,其中另一种方法是在我调用函数的地方编写函数代码,使其异步并且松散代码重用的好处?

1 个答案:

答案 0 :(得分:0)

试图;

let result = query.fromLocalDatastore().findObjectsInBackgroundWithBlock {
  (results: [PFObject]?, error: NSError?) -> Void in
  if error == nil {
    // results will contain users with a hometown team with a winning record
  }