总的来说,我对Swift和Xcode还是比较陌生,并且发现很多困难要设法解决。
我正在开发一个利用Parse.com后端服务器的应用程序。为了不阻塞主线程,每当应用程序从服务器下载任何内容时,它都会异步地在其他线程上完成。但是,其余代码将继续在主线程上执行,并且当应该从服务器下载的数据尚未下载时,它将崩溃。我想知道如何在异步函数完成后调用函数来运行,这对于单独文件中的函数必须完成。
Parse.com
我读过闭包可能对此有所帮助,但是我发现那里的语法非常困难,对它的解释将不胜感激。但是任何方式都将非常有帮助。
谢谢
好了,您只需在异步回调 的末尾 调用该函数。那就是异步回调结束的时候-异步回调中的所有其他东西都结束了!因此,例如:
func myMethod() { // ... code ... somebody.doSomethingWith(someObject, asynchronousCallback: { (thing, otherThing) in // ... do whatever // --> CALL THE FUNCTION! }) // ... code ... }
如果问题是,你不 知道 什么函数来调用,你可以配置你周围的函数/对象,以便有人能 交出 你的函数,而那么你在我说的“调用函数”在上面的斑点叫什么。
例如:
func myMethod(f:() -> ()) { // we receive the function as parameter // ... code ... somebody.doSomethingWith(someObject, asynchronousCallback: { (thing, otherThing) in // ... do whatever // --> CALL THE FUNCTION, by saying: f() }) // ... code ... }