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

在iOS中掛起主線程

移動(dòng)開(kāi)發(fā) iOS
通常而言,ios中涉及IO的操作是多線程的,而不會(huì)在主線程中完成,這是為了避免耗時(shí)過(guò)長(zhǎng)IO操作卡住主線程。

但某些時(shí)候,我們希望讓主線程等待IO操作完成——例如主線程創(chuàng)建了一個(gè)文件夾后,等待完成,再往文件夾中創(chuàng)建文件。

NSObject類有一個(gè)方法performSelectorOnMainThread:withObject:waitUntilDone可以讓主線程掛起,但selector至多只能帶一個(gè)可傳參數(shù),這時(shí)需要用到NSInvocation類來(lái)解決這個(gè)問(wèn)題。

代碼如下: 

- (void)createRecordDirectoryBlockingMainThread

{

NSFileManager *dfm = [NSFileManager defaultManager];

SEL sel = @selector(createDirectoryAtPath:

withIntermediateDirectories:

attributes:

error:);

NSMethodSignature *sig = [dfm methodSignatureForSelector:sel];

//方法的簽名,實(shí)際上包含了目標(biāo),選擇器,及各參數(shù)的類型信息,但并不含有目標(biāo)和方法的內(nèi)存地址。這些信息是為了在函數(shù)壓棧時(shí)準(zhǔn)確得到各參數(shù)的值

NSInvocation *ivct = [NSInvocation invocationWithMethodSignature:sig];

[ivct setTarget:dfm];

[ivct setSelector:sel]; //提供方法的內(nèi)存地址

FilePathManager *fpm = [FilePathManager sharedInstance];

NSString *path = fpm.programRecordDirectoryPath;

[ivct setArgument:&path atIndex:2]; //參數(shù)在數(shù)組中的索引從2開(kāi)始

[ivct setArgument:(void *)&BOOL_NO atIndex:3]; //(void *)的類型轉(zhuǎn)換可以避免編譯器警告

[ivct setArgument:(void *)&ID_NIL atIndex:4];

[ivct setArgument:(void *)&VOID_NULL atIndex:5];

[ivct performSelectorOnMainThread:@selector(invoke)

withObject:nil

waitUntilDone:YES]; //掛起主線程

}

【編輯推薦】

  1. PhoneGap Xcode iOS入門教程
  2. iOS 5.1的Web存儲(chǔ)方式改變會(huì)影響到Web App嗎?
  3. Cocos2d-x跨Android&iOS平臺(tái)開(kāi)發(fā)入門
責(zé)任編輯:冰凝兒 來(lái)源: 博客園
相關(guān)推薦

2014-07-21 10:03:56

2011-06-22 15:42:18

QT 信號(hào)

2017-03-13 10:41:33

iOSUI操作主線程

2010-02-24 11:19:00

Python主線程

2010-02-01 17:33:24

Python主線程

2010-02-02 16:47:12

Python主線程

2010-03-01 13:28:44

Python子線程

2010-03-15 18:34:08

Java多線程

2009-07-16 08:53:03

Swing任務(wù)Swing線程

2010-02-26 15:37:11

Python主線程

2010-03-10 19:34:45

Python主線程

2013-03-27 10:32:53

iOS多線程原理runloop介紹GCD

2015-03-09 09:44:35

GmailiOS

2011-04-02 13:57:05

Sql Server

2014-04-23 13:30:23

類簇iOS開(kāi)發(fā)

2010-03-03 17:52:31

Python線程同步

2011-08-10 10:18:22

iPhone多線程線程

2023-12-14 15:05:08

volatile代碼C++

2025-04-28 08:20:40

ndroid主線程線程

2015-08-07 10:40:31

UI主線程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美一级视频免费看 | 日韩理论电影在线观看 | 久久r久久 | 国产高清不卡 | 日日夜精品视频 | 欧美一级免费 | 国产1区2区在线观看 | 久久久久久久久久久久久91 | 欧美午夜剧场 | 黄色毛片在线看 | 国内精品一区二区三区 | 91精品国产综合久久婷婷香蕉 | 亚洲黄色在线免费观看 | 午夜爽爽爽男女免费观看 | 一级毛片视频 | 九九亚洲 | 黄色一级片在线播放 | 在线中文一区 | 成人深夜福利 | 欧美视频免费在线 | 国产区一区二区三区 | 国产午夜在线 | 亚洲区一 | 久久中文字幕一区 | 亚洲精品一区二区在线 | 99久久久久久| 国产在线一区二区三区 | 亚洲精品免费视频 | 6996成人影院网在线播放 | 自拍第一页 | 99视频在线免费观看 | 亚洲精品自在在线观看 | 国产国语精品 | 羞羞色网站 | 欧美激情综合色综合啪啪五月 | 久草.com | 国产免费麻豆视频 | 国产视频黄色 | 91美女在线 | 在线观看av网站永久 | 精品一区二区三区免费毛片 |