NSTimer 小记

简介: <p style="font-size:19px; line-height:normal; margin-top:0px; font-family:'Lucida Grande'"> 创建一个 Timer</p> <ul style="margin-left:30px; padding-left:0px; font-family:Verdana,Geneva,Arial,Helveti

创建一个 Timer

  • + scheduledTimerWithTimeInterval: invocation: repeats:
  • + (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti   invocation:(NSInvocation *)invocation   repeats:(BOOL)yesOrNo;
  • + scheduledTimerWithTimeInterval: target: selector: userInfo: repeats:
  • + (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti   target:(id)aTarget   selector:(SEL)aSelector   userInfo:(id)userInfo   repeats:(BOOL)yesOrNo;
  • 创建返回一个新的NSTimer对象和时间表,在当前的默认模式下循环调用一个实例方法。
  • + timerWithTimeInterval: invocation: repeats:
  • + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo;
  • + timerWithTimeInterval: target:selector: userInfo:repeats:
  • + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;
  • – initWithFireDate: interval: target: selector: userInfo: repeats:
  • - (id)initWithFireDate:(NSDate *)date   interval:(NSTimeInterval)ti     target:(id)t    selector:(SEL)s    userInfo:(id)ui    repeats:(BOOL)rep;

scheduledTimerWithTimeInterval:(NSTimeInterval)seconds  

预订一个Timer,设置一个时间间隔。

表示输入一个时间间隔对象,以秒为单位,一个>0的浮点类型的值,如果该值<0,系统会默认为0.1

 target:(id)aTarget

表示发送的对象,如self

 selector:(SEL)aSelector

方法选择器,在时间间隔内,选择调用一个实例方法

userInfo:(id)userInfo

此参数可以为nil,当定时器失效时,由你指定的对象保留和释放该定时器。

repeats:(BOOL)yesOrNo

YES时,定时器会不断循环直至失效或被释放,当NO时,定时器会循环发送一次就失效。

invocation:(NSInvocation *)invocation

启动 Timer

  • – fire

停止 Timer

  • – invalidate

Timer设置

  • – isValid
  • – fireDate
  • – setFireDate:
  • – timeInterval
  • – userInfo

NSTimeInterval类:是一个浮点数字,用来定义秒


例子:

iphone为我们提供了一个很强大得时间定时器 NSTimer

他可以完成任何定时功能:

我们使用起来也很简单,只要记住三要素就可以,具体得三要素是:时间间隔NSTimeInterval浮点型,事件代理

delegate和事件处理方法@selector();就可以用

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo; 来初始化一个 时间定时器

下面我写了一个很简单得例子

初始化一个定时器:

-(void)initTimer

{

//时间间隔

NSTimeInterval timeInterval =1.0 ;

//定时器

NSTimer   showTimer = [NSTimer scheduledTimerWithTimeInterval:maxShowTime

                                                                 target:self

                                                            selector:@selector(handleMaxShowTimer:)

                                                               userInfo:nil

                                                                repeats:NO];

}

//触发事件

-(void)handleMaxShowTimer:(NSTimer *)theTimer

{

NSDateFormatter dateFormator = [[NSDateFormatter alloc] init];

dateFormator.dateFormat = @"yyyy-MM-dd  HH:mm:ss";

NSString *date = [dateformater stringFromDate:[NSDate date]];

if([date isEqualToString:@"2011-11-09 23:59:59"])

{

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:TITLE_NAME

        message:@"现在马上就有新的一天了!"

       delegate:self

       ancelButtonTitle:nil

      otherButtonTitles:CONFIRM_TITLE, nil];

[alert show];

[alert release];

}

[data release];

[dateFormator release];

}

另外附一个例子:方框赛跑

-(void)viewDidLoad

{

[super viewDidLoad];

CGRect workingFrame;

workingFrame.origin.x = 15;

workingFrame.origin.y = 400;

workingFrame.size.width = 40;

workingFrame.size.height = 40;

for(int i = 0; i < 6; i++)

{

UIView *myView = [[UIView alloc] initWithFrame:workingFrame];

[myView setTag:i];//标记方块

[myView setBackgroundColor:[UIColor blueColor]];

workingFrame.origin.x = workingFrame.origin.x + workingFrame.size.width + 10;

[self.view addSubview:myView];

}

}

目录
相关文章
|
7天前
|
SQL 人工智能 分布式计算
【产品升级】Dataphin V5.3 全新上线:四大能力升级,数据管理更统一、更智能!
V5.3版本,Dataphin推出众多重磅功能:例如,全新的智能应用:X-数据标准、X-数据安全以及智能应用反馈看板;更前沿的数据研发能力:利用SelectDB/Doris/StarRocks查询加速Hive和MaxCompute的离线引擎、全面支持Paimon格式的数据湖构建;资产运营和数据服务持续提效。全新的智能应用:X-数据标准、X-数据安全以及智能应用反馈看板;更前沿的数据研发能力:利用SelectDB/Doris/StarRocks查询加速Hive和MaxCompute的离线引擎。
193 2
|
7月前
|
XML JSON API
掌握 Postman:高级 GET 请求技术与响应分析
本指南详细讲解了如何在 Postman 中发送 GET 请求并解析 API 响应,帮助开发者提升 API 测试与开发能力。Postman 是一款强大的工具,可简化请求发送和响应分析流程,并支持团队协作及多版本管理。通过创建集合、配置请求参数、设置身份验证与请求头等步骤,开发者能够高效测试 API。同时,理解响应体、Cookie、响应头等内容有助于深入分析 API 行为,确保高质量的软件交付。掌握 Postman 不仅提高效率,还能加深对 Web 通信机制的理解。
|
开发框架 前端开发 .NET
AbpHelper CLI积累与实战分享
【9月更文挑战第19天】AbpHelper CLI 是一个强大的工具,用于提升开发人员使用 ABP 框架时的效率。它能快速生成代码、确保代码规范性,并执行自动化任务如数据库迁移和种子数据插入。本文分享了如何利用 AbpHelper CLI 快速初始化项目、开发模块及注意事项,帮助开发者提高效率和代码质量。
145 7
|
7月前
|
人工智能 安全 物联网
《鸿蒙系统中人工智能驱动的智能助手:应用模式与未来航向》
在数字化时代,人工智能与操作系统的融合成为科技变革的核心力量。鸿蒙系统作为华为自主研发的分布式操作系统,为智能助手提供了广阔舞台。通过语音交互、多模态融合、场景感知与跨设备协同,智能助手实现了便捷操控、深度交互和主动服务。未来,借助大模型赋能、物联网深度融合及强化隐私保护,智能助手将推动全场景服务创新,助力开发者生态繁荣,开启万物互联的智能交互新时代。
410 12
|
9月前
|
JSON 前端开发 搜索推荐
关于商品详情 API 接口 JSON 格式返回数据解析的示例
本文介绍商品详情API接口返回的JSON数据解析。最外层为`product`对象,包含商品基本信息(如id、name、price)、分类信息(category)、图片(images)、属性(attributes)、用户评价(reviews)、库存(stock)和卖家信息(seller)。每个字段详细描述了商品的不同方面,帮助开发者准确提取和展示数据。具体结构和字段含义需结合实际业务需求和API文档理解。
|
8月前
|
存储 移动开发 JavaScript
网页 HTML 自动播放下一首音乐
在 HTML5 中实现自动播放下一首音乐,通过管理音乐列表、操作音频元素和监听事件完成。创建包含多个音乐链接的列表,使用 `&lt;audio&gt;` 元素加载音乐,监听 `ended` 事件,在当前音乐结束时自动播放下一首。示例代码展示了如何使用 JavaScript 实现这一功能,确保无缝切换音乐。
|
7月前
|
人工智能 安全 搜索推荐
如何使用DeepSeek提高工作效率和生活质量?
普通工作者可通过DeepSeek显著提升效率和生活质量。工作方面,3秒生成文档、10分钟完成会议管理、数据处理自动化;生活方面,规划旅行、制定食谱、即时学习助手。使用技巧如“角色+任务+具体要求”提问公式,每天节省2小时,逐步培养“AI优先”思维,让琐事时间用于自我提升或陪伴家人。
289 0
|
12月前
|
机器学习/深度学习 人工智能 搜索推荐
AI与未来医疗:革命性的技术,重塑健康产业
在21世纪的科技浪潮中,人工智能(AI)正迅速成为医疗领域的关键力量。本文探讨了AI在未来医疗中的潜力和应用前景,从智能诊断、个性化治疗到药物研发和患者护理,详细阐述了AI如何通过提升效率、准确性和个性化医疗服务来重塑健康产业。通过案例分析和专家观点,本文展示了AI在医疗领域的多重影响,并讨论了其面临的伦理和隐私挑战。
|
12月前
|
设计模式 开发者 Python
Python编程中的设计模式:从入门到精通####
【10月更文挑战第14天】 本文旨在为Python开发者提供一个关于设计模式的全面指南,通过深入浅出的方式解析常见的设计模式,帮助读者在实际项目中灵活运用这些模式以提升代码质量和可维护性。文章首先概述了设计模式的基本概念和重要性,接着逐一介绍了几种常用的设计模式,并通过具体的Python代码示例展示了它们的实际应用。无论您是Python初学者还是经验丰富的开发者,都能从本文中获得有价值的见解和实用的技巧。 ####
|
12月前
|
缓存 网络协议 算法
TCP的滑动窗口与拥塞控制
【10月更文挑战第7天】这段内容详细介绍了TCP协议中确保数据包可靠传输的机制,包括使用ID确保顺序性与累计确认、发送端与接收端的缓存管理、超时重传策略及自适应重传算法,以及拥塞控制机制如慢启动、拥塞避免和快速重传。