我想从其他视图控制器中的Controller视图调用一个函数。这个函数将解析json并将数据放入一个结构中全局的Array中,问题是如果我将该函数放入ViewDidAppear中,它会向Web服务发出大量请求,如果我将该函数放入ViewDidLoad中它不会下载数据,这是我要调用的函数
traefik | time="2018-05-29T15:35:32Z" level=error msg="Unable to obtain ACME certificate for domains \"monitor.example.com\" detected thanks to rule \"Host:monitor.example.com\" : cannot obtain certificates: acme: Error -> One or more domains had a problem:\n[monitor.example.com] Error presenting token: HTTP 403: forbidden: You do not have access for the attempted action.\n"
调用此函数是self.pazienti {} 但我尝试使用全局函数创建一个扩展类,这会产生阻止服务器的一些请求。
答案 0 :(得分:0)
你应该创建一个单例类并将你的方法放在该单例类中。然后你可以将该方法称为
Return
答案 1 :(得分:0)
您没有向我们展示导致问题的代码。如果你选择viewDidAppear
,你可能需要引入一些状态才能知道请求是否已经在进行中(并且如果是,则不安排另一个dataTask
)。另一方面,viewDidLoad
应该按照您的要求执行,只需调用一次。
然而,除非有真的没有其他解决方案,否则很可能不仅仅是一个坏的,而是真的错误的想法,将您的completionHandler存储在某种全局变量中它。据我所知,func pazienti
的设计似乎位于“错误”的对象中。但是你提供的代码很少来真正判断这一点。请至少在问题中添加您的回调代码,以便我可以修改我的答案。