对比分析iOS延迟执行的4种方式_IOS

最近学习了延迟执行的几种方法,分享一下:

1.performSelector(NSObject)方法  2.NSTimer方法  3.GCD方法  4.sleep(NSThread)方法

一、performSelector方法:

复制代码 代码如下:

[self performSelector:@selector(delayMethod) withObject:nil afterDelay:1.0f];

1.特点: 此方式要求必须在主线程中执行,否则无效。 是一种非阻塞的执行方式, 暂时未找到取消执行的方法。

二、定时器:NSTimer:

复制代码 代码如下:

[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(delayMethod) userInfo:nil repeats:NO];

1.特点: 此方式要求必须在主线程中执行,否则无效。 是一种非阻塞的执行方式,可以通过NSTimer类的- (void)invalidate;取消执行

三、sleep方式:

复制代码 代码如下:

[NSThread sleepForTimeInterval:1.0f];

1.特点: 此方式在主线程和子线程中均可执行。是一种阻塞的执行方式,建议放到子线程中,以免卡住界面 没有找到取消执行的方法

四、GCD方式:

复制代码 代码如下:

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ dispatch_async(dispatch_get_main_queue(), ^{ [self delayMethod]; }); });

1.特点: 此方式可以在参数中选择执行的线程。 是一种非阻塞的执行方式,没有找到取消执行的方法。

时间: 2024-10-27 02:48:22

对比分析iOS延迟执行的4种方式_IOS的相关文章

详解iOS获取通讯录的4种方式_IOS

本文实例为大家分享了iOS获取通讯录的4种方式,供大家参考,具体内容如下 使用场景 一些App通过手机号码来推荐好友,如 微博.支付宝 首先客户端会获取通讯录中的所有手机号然后将这些手机号提交到App服务器中,服务器会查找每个手机号对应的App账号如QQ号码返回到客户端,然后客户端根据服务器返回的账号列表来推荐好友. 获取联系人方式 方案一:AddressBookUI.framework框架 提供了联系人列表界面.联系人详情界面.添加联系人界面等 一般用于选择联系人 方案二:AddressBoo

iOS延迟执行方法详解_IOS

近日学习了延迟执行的几种方法,分享一下. 1.performSelector(NSObject)方法  2.NSTimer方法  3.GCD方法  4.sleep(NSThread)方法 延迟执行代码: - (void)delayDo : (id)sender { NSLog(@"do:%@",sender); } 1.performSelector(NSObject)方法 这是iOS中常用的一种延迟执行方法. 特点:这个方法必须要在主线程中使用.可以传递参数.可以取消操作,不能暂停.

Jquery 在页面加载后执行的几种方式

 这篇文章主要介绍了Jquery 在页面加载后执行的几种方式,需要的朋友可以参考下 方式1:   代码如下: $(function(){    initPublish();    });    说明: initPublish() 即为你要运行的JS函数:这段代码,放在页面最低端.    方式2:  代码如下: $(document).ready(function () {    // add your code here    initPublish();    $(.a).click( fun

iOS Gif图片展示N种方式(原生+第三方)_IOS

本文分享了iOS Gif图片展示N种方式,供大家参考,具体内容如下 原生方法: 1.UIWebView 特点:加载速度略长,性能更优,播放的gif动态图更加流畅. //动态展示GIF图片-WebView -(void)showGifImageWithWebView{ //读取gif图片数据 NSData *gifData = [NSData dataWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"earthGif"

IOS中延时执行的几种方式的比较和汇总

本文列举了四种延时执行某函数的方法及其一些区别.假如延时1秒时间执行下面的方法. - (void)delayMethod { NSLog(@"execute"); } 1.performSelector方法 [self performSelector:@selector(delayMethod) withObject:nil afterDelay:1.0f]; 此方式要求必须在主线程中执行,否则无效. 是一种非阻塞的执行方式, 暂时未找到取消执行的方法. 2.定时器:NSTimer [

详细分析Javascript中创建对象的四种方式_javascript技巧

前言 使用Javascript创建对象的方式有很多,现在就来列举一下其中的四种方式,并且罗列出了每种方式的优缺点,可以让大家进行选择使用,下面来看看. 工厂模式 function createPerson(name, age){ var obj = new Object(); obj.name = name; obj.age = age; return obj; //一定要返回,否则打印undefined:undefined } var person1 = new createPerson('Y

iOS开发中UIWebView的加载本地数据的三种方式_IOS

UIWebView是IOS内置的浏览器,可以浏览网页,打开文档 html/htm pdf docx txt等格式的文件. safari浏览器就是通过UIWebView做的. 服务器将MIME的标识符等放入传送的数据中告诉浏览器使用那种插件读取相关文件. uiwebview加载各种本地文件(通过loadData方法): UIWebView加载内容的三种方式: 1 加载本地数据文件 指定文件的MIMEType 编码格式使用@"UTF-8" 2加载html字符串(可以加载全部或者部分html

iOS 开发之 - 关闭键盘 退出键盘 的5种方式_IOS

iOS 开发之 - 关闭键盘 退出键盘 的5种方式  1.点击编辑区以外的地方(UIView) 2.点击编辑区域以外的地方(UIControl) 3.使用制作收起键盘的按钮 4.使用判断输入字元 5.关于键盘遮蔽的问题 1,点击编辑区以外的地方(UIView) 这是一种很直觉的方法,当不再需要使用虚拟键盘时,只要点击虚拟键盘和编辑区域外的地方,就可以将键盘收起,下面程式码是在 UIView 中内建的触碰事件方法函式,您可以参考 Touch Panel / 触碰萤幕 / 压力感应器的基本使用方式一

iOS 拨打电话代码的三种方式_IOS

 1,这种方式,拨打完电话回不到原来的应用,会停留在通讯录里,而且是直接拨打,不弹出提示 NSMutableString * str=[[NSMutableString alloc] initWithFormat:@"tel:%@",@"186xxxxxxxx"]; // NSLog(@"str======%@",str); [[UIApplication sharedApplication] openURL:[NSURL URLWithStri