成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

GCD實戰一:使用串行隊列實現簡單的預加載

移動開發 iOS
本文為大家介紹了如何使用串行隊列實現簡單的預加載,思路是使用gcd創建串行隊列,然后在此隊列中先后執行兩個任務:1.預加載一個viewController 2.將這個viewController推入。文章最后提供了源碼下載,希望對各位有所幫助。

[[77418]]

本文為大家介紹了如何使用串行隊列實現簡單的預加載,思路是使用gcd創建串行隊列,然后在此隊列中先后執行兩個任務:1.預加載一個viewController 2.將這個viewController推入。文章最后提供了源碼下載,希望對各位有所幫助。

其主要思路是使用gcd創建串行隊列,然后在此隊列中先后執行兩個任務:1.預加載一個viewController 2.將這個viewController推入

代碼如下:

  1. @implementation DWAppDelegate 
  2.     dispatch_queue_t _serialQueue; 
  3.     UINavigationController *_navController; 
  4.  
  5. - (dispatch_queue_t)serialQueue 
  6.     if (!_serialQueue) { 
  7.         _serialQueue = dispatch_queue_create("serialQueue", DISPATCH_QUEUE_SERIAL);//創建串行隊列 
  8.     } 
  9.     return _serialQueue; 
  10.  
  11. - (void)prepareViewController 
  12.     dispatch_async([self serialQueue], ^{//把block中的任務放入串行隊列中執行,這是第一個任務 
  13.         self.viewController = [[[DWViewController alloc] init] autorelease]; 
  14.         sleep(2);//假裝這個viewController創建起來很花時間。。其實view都還沒加載,根本不花時間。 
  15.         NSLog(@"prepared"); 
  16.     }); 
  17.  
  18. - (void)goToViewController 
  19.     dispatch_async([self serialQueue], ^{//第二個任務,推入viewController 
  20.         NSLog(@"go"); 
  21.         dispatch_async(dispatch_get_main_queue(), ^{//涉及UI更新的操作,放入主線程中 
  22.             [_navController pushViewController:self.viewController animated:YES]; 
  23.         }); 
  24.     }); 
  25.  
  26. - (void)dealloc 
  27.     dispatch_release(_serialQueue); 
  28.     [_navController release]; 
  29.     [_window release]; 
  30.     [_viewController release]; 
  31.     [super dealloc]; 
  32.  
  33. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
  34.     [self prepareViewController]; 
  35.     self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 
  36.     // Override point for customization after application launch. 
  37.     DWViewController *viewController = [[[DWViewController alloc] initWithNibName:@"DWViewController" bundle:nil] autorelease]; 
  38.     viewController.view.backgroundColor = [UIColor blueColor]; 
  39.     _navController = [[UINavigationController alloc] initWithRootViewController:viewController]; 
  40.     self.window.rootViewController = _navController; 
  41.     [self goToViewController]; 
  42.     [self.window makeKeyAndVisible]; 
  43.     return YES; 
  44. }

工程下載:

http://down.51cto.com/data/872207

責任編輯:閆佳明 來源: dreamingwish
相關推薦

2013-07-15 16:55:54

iOS多線程GCD實戰資源競爭

2013-07-15 15:23:03

iOS多線程GCD

2021-09-08 22:28:13

前端Css3動畫

2017-04-27 10:07:52

框架設計實現

2024-06-17 08:26:23

性能ViewPager頁面

2011-01-17 19:35:04

javascriptjqueryweb

2011-03-17 10:37:07

JavaScript

2009-04-11 15:12:24

Windows CE串行通信GPS

2022-01-15 07:20:18

Redis List 消息隊列

2022-01-21 19:22:45

RedisList命令

2024-03-22 12:10:39

Redis消息隊列數據庫

2021-11-02 15:35:01

JavaScriptCSS開發

2021-04-28 10:01:00

JSCSS進度條

2021-03-01 23:31:48

隊列實現棧存儲

2022-01-04 16:50:47

JavaScript圖片網站

2011-08-05 16:41:48

iOS 隊列 內存

2015-03-10 13:55:31

JavaScript預解析原理及實現

2019-04-03 10:50:09

Javascript區塊鏈技術

2013-05-14 09:57:37

2023-09-12 14:58:00

Redis
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产 欧美 日韩 一区 | 91久久精品一区二区三区 | 91av在线电影 | 久久亚洲精品国产精品紫薇 | 欧美网站一区二区 | 日韩成人精品 | 国产黄色在线 | 精品一区二区免费视频 | 91麻豆精品国产91久久久更新资源速度超快 | 国产欧美在线一区二区 | 欧美日韩视频在线第一区 | 精品1区| 欧美一区二区三区在线观看 | 久久色视频 | 国产成人99久久亚洲综合精品 | 国产一区久久精品 | 亚洲国产成人在线 | 日韩色图在线观看 | 97人人超碰 | 欧美精品一区二区三区在线 | 国产精品自拍一区 | 网站黄色在线免费观看 | 精品成人在线视频 | 一区二区三区四区免费视频 | 精品1区 | 中文字幕亚洲欧美 | 欧美区在线观看 | 成人免费视频观看 | 欧美成人精品一区二区三区 | 婷婷一级片 | 亚洲黄色在线免费观看 | 91免费视频观看 | 男女黄网站 | 亚洲人成人一区二区在线观看 | 久久久久无码国产精品一区 | 免费观看一级特黄欧美大片 | 3p视频在线观看 | 一级黄色毛片a | www.99热这里只有精品 | 久久久久99| 久久久久久亚洲精品 |