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

在iOS中掛起主線程

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

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

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

代碼如下: 

- (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開始

[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)開發(fā)入門
責(zé)任編輯:冰凝兒 來源: 博客園
相關(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開發(fā)

2025-04-28 08:20:40

ndroid主線程線程

2010-03-03 17:52:31

Python線程同步

2011-08-10 10:18:22

iPhone多線程線程

2023-12-14 15:05:08

volatile代碼C++

2015-08-07 10:40:31

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

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

主站蜘蛛池模板: 色综合中文 | 精品免费 | 成人影院午夜 | 久国久产久精永久网页 | 99久久婷婷国产亚洲终合精品 | 国产乱码精品一区二区三区五月婷 | 欧美1页| 天天操天天摸天天干 | 91一区二区三区在线观看 | 亚洲精品一二区 | 日韩精品一区二区三区久久 | 国产视频福利在线观看 | 精品国产乱码久久久久久1区2区 | 日韩电影中文字幕 | 毛片网在线观看 | avmans最新导航地址 | 国产精品欧美一区二区三区不卡 | 亚洲精品黄色 | 97精品超碰一区二区三区 | 国产中文一区二区三区 | 久久久一二三区 | 亚洲aⅴ一区二区 | 欧美国产日韩一区二区三区 | 一区二区日韩精品 | 日韩精品一区二区三区在线观看 | 精品毛片| 国产免费一区二区 | 亚洲精品久久久一区二区三区 | 亚洲欧美综合 | 欧美a区 | 91成人免费看片 | 欧美在线a | 久久免费精品 | 久久99精品视频 | av在线免费看网址 | 国产激情视频网站 | 福利一区二区 | 国产精品久久久久久吹潮 | 99精品欧美一区二区三区综合在线 | 精品99爱视频在线观看 | 亚洲国产精品一区二区第一页 |