在另一个swift结束时启动功能

时间:2016-11-16 23:19:59

标签: ios swift swift3

我需要在“caricaLavori”功能之后启动功能“caricaImmagine”。在代码中很明显caricaImmagine需要caricaLavori完成将项目附加到数组。

我已经尝试了this,但我不知道如何实现它。

这是“newMethod”(在viewWillAppear中调用):

 func newMethod(){
    print("login: \(login)")

    let userFetch = NSFetchRequest<NSFetchRequestResult>(entityName: "UserEntity")

    do {
        fetchUsers = try moc.fetch(userFetch) as! [User]
    } catch {
        fatalError("Failed to fetch person: \(error)")
    }

    do{
        let users = try moc.fetch(userFetch)
        if(users.count > 0){
            print("utente connesso")
            tableview.delegate = self
            tableview.dataSource = self
            let d_email = fetchUsers.first!.email

            caricaLavori(datore_email: d_email!)
            for i in 0...lavori.count{
                caricaImmagine(id_lavoro: lavori[i].id)
            }

        }else{
            DispatchQueue.main.async {
                self.performSegue(withIdentifier: "area_utente_segue", sender: self)
            }
        }
    }catch {}
}

如果你想要其他2个函数,我将编辑这篇文章(它们都从php脚本加载数据,都会发出http请求)

谢谢你们

1 个答案:

答案 0 :(得分:1)

你说&#34;他们都从php脚本加载数据,都做了http请求&#34;。这是一个重要的信息。

在iOS上,您希望异步进行网络访问。这意味着提交网络请求的函数会提交该请求,然后在请求被发送到远程服务器之前立即返回。

解决方案是编写您的方法以获取完成处理程序。任务完成后,该方法将调用完成处理程序。

在下面的主题中查看我的答案,找到包含使用完成处理程序的工作示例的代码:

Storing values in completionHandlers - Swift

请注意,该帖子(以及它链接到的示例应用程序)是用Swift 2编写的,需要针对Swift 3进行更新。