因此,在我的第一个视图中,我在我的viewDidLoad上得到了一个怪物代码。我分配了7个我自己的对象,所以它看起来像这样
OwnObject *o1 = [[OwnObject alloc] initWithValuesString:@"blabla" image:[UIImage named:@"blabla"]];
OwnObject *o2 = [[OwnObject alloc] initWithValuesString:@"blabla" image:[UIImage named:@"blabla"]];以此类推。
我在苹果开发者大会上再次观看了一段会议视频,他们说我应该使用GCD来加快速度,那么我可以通过将GCD放到分派队列中来提高我的应用程序的速度吗?
请注意,我的视图加载并不是很慢,但我只是想知道我是否应该通常将这样的东西放在分派队列中。
谢谢,如果这很愚蠢的话我很抱歉。
发布于 2011-06-29 00:58:27
如果这些分配没有做需要主线程的事情(例如,触摸UI),那么它们可以通过队列中的GCD来完成。您可能希望使用dispatch_async,因为使用同步调用时,您仍然必须等待分配完成,并且什么也得不到。此外,您还需要确保视图控制器被设计为在不分配这些对象的情况下处理完成viewDidLoad,因为异步分派调用将是异步的。您可能需要发布分配已完成的通知,或者使用dispatch_group_notify,以便视图控制器知道分配何时完成并可以开始使用对象。
除非这些分配花费很长时间,否则这可能会带来比它值得的更多的麻烦。
https://stackoverflow.com/questions/6510140
复制相似问题