gpt4 book ai didi

objective-c - 只有在另一个函数准备就绪时才调用函数

转载 作者:行者123 更新时间:2023-11-28 23:13:58 25 4
gpt4 key购买 nike

我如何确保在 Objective-C 中,一个函数只被调用,直到另一个函数准备好?

更新:

-(void)reloadJsonFromServer {
[[Sync sharedObject] synchronise];
[self reload];
}

我有这个功能。第二个函数“reload”应该只被调用,如果第一个函数——在本例中它是一个单例——准备好了。就绪意味着第一个函数不再运行。

最佳答案

所以你想等待异步方法完成?有很多方法可以做到这一点。

  • synchronise 方法本身在完成时对您的对象调用 reload
  • dispatch_async reload 方法并让它等待,直到其他方法填充您正在等待的标志或数据结构,然后再继续(BOOL 同步 或类似)。请注意,如果您的 reload 方法对 UIKit 执行任何操作,那么您需要在主线程上运行它。
  • 更改 synchronise 的运行方式,使其在完成同步之前不会真正返回给调用者,然后 dispatch_async reloadJsonFromServer 方法.
  • 像第三点一样更改synchronise,但不是使用dispatch_async,而是将这两个方法调用都添加到NSOperationQueue 作为NSOperationreload 依赖于 synchronise 的完成。之后操作队列会处理它。

这些只是一小部分,我相信其他人可以提出更多建议。

关于objective-c - 只有在另一个函数准备就绪时才调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7237740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com