成人免费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技術棧公眾號

主站蜘蛛池模板: 一区在线观看 | www.国产精 | 欧美在线一区二区三区 | 亚洲欧美成人影院 | 欧美一区二区三区高清视频 | 欧美乱人伦视频 | 欧美日韩国产一区二区三区 | 国产美女久久 | 粉嫩国产精品一区二区在线观看 | 亚洲精品自在在线观看 | 91网站视频在线观看 | 国产一区二区三区四区hd | 日本免费视频在线观看 | 伊人春色成人网 | 日韩欧美国产精品 | 精品电影 | 九九在线视频 | 91丨国产| 成人在线免费观看视频 | 狠狠干美女 | 久久91精品国产一区二区三区 | 久久日韩粉嫩一区二区三区 | 2023亚洲天堂 | 日本欧美在线视频 | 日日夜夜天天 | 日韩一区二区久久 | av网站在线播放 | 欧美黄色网 | 一级毛片免费视频观看 | 精品一区二区三区免费视频 | 婷婷丁香激情 | 国产精品中文字幕一区二区三区 | 色综合一区二区 | 国产在线中文字幕 | 三级国产三级在线 | 亚洲一区二区三区在线视频 | 91久久精品国产 | 97伦理电影网 | 亚洲一区二区三区四区五区午夜 | 精品久久久久久红码专区 | 国产不卡在线观看 |