OGeek|极客世界-中国程序员成长平台

标题: iphone - 使用 GCD 加速 View 的加载 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 16:39
标题: iphone - 使用 GCD 加速 View 的加载

所以,在我的第一个 View 中,我的 viewDidLoad 中得到了一个怪物代码。好吧,我分配了 7 个我自己的对象,所以它看起来像这样

OwnObject *o1 = [[OwnObject alloc] initWithValuesString"blabla" image:[UIImage named"blabla"]];
OwnObject *o2 = [[OwnObject alloc] initWithValuesString"blabla" image:[UIImage named"blabla"]];

等等……

我再次在苹果开发者那里观看了一个 session 视频,他们说我应该使用 GCD 来加快速度,那么我可以通过将它放入调度队列来加速我的应用程序吗?

请注意,我的 View 加载速度不是很慢,但我只是想知道我是否应该通常将类似的东西放在调度队列中。

谢谢,如果这是愚蠢的,对不起。



Best Answer-推荐答案


如果这些分配不做需要主线程的事情(例如,触摸 UI),那么它们可以通过 GCD 在队列中完成。您会想使用 dispatch_async,因为使用同步调用,您仍然必须等到分配完成并且不会获得任何 yield 。此外,您需要确保您的 View Controller 旨在处理完成 viewDidLoad 而不分配这些对象,因为异步调度调用将是异步的。您可能需要发布分配已完成的通知或使用 dispatch_group_notify 以便 View Controller 知道分配何时完成并可以开始使用对象。

除非这些分配需要很长时间,否则这可能会带来更多麻烦。

关于iphone - 使用 GCD 加速 View 的加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6510140/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4