我需要在“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请求)
谢谢你们答案 0 :(得分:1)
你说&#34;他们都从php脚本加载数据,都做了http请求&#34;。这是一个重要的信息。
在iOS上,您希望异步进行网络访问。这意味着提交网络请求的函数会提交该请求,然后在请求被发送到远程服务器之前立即返回。
解决方案是编写您的方法以获取完成处理程序。任务完成后,该方法将调用完成处理程序。
在下面的主题中查看我的答案,找到包含使用完成处理程序的工作示例的代码:
Storing values in completionHandlers - Swift
请注意,该帖子(以及它链接到的示例应用程序)是用Swift 2编写的,需要针对Swift 3进行更新。