NSTimer的用法

news/2024/7/20 21:19:13 标签: iOS, 方法, 对象, 内存

简单来说NSTimer就是一个定时器,能够在确定的时间间隔里发送信息给对象

NSTimer在iOS中经常会用到,但是用不当会造成其中的内存释放问题。

今天只做简单的总结:

1.创建计时器:

//添加timmer
@property (weak,nonatomic)NSTimer *timer;

    _timer = [NSTimer scheduledTimerWithTimeInterval:1
                                              target:self
                                            selector:@selector(didClickButton:) 
                                             userInfo:nil
                                             repeats:YES];


参数:

interval:时间间隔

target:一般指控制器

selector:要调用的方法

userInfo:用户自定义的参数

repeats:设置是否重复


2.停止计时器

    //让计时器无效
    [_timer invalidate];

3.再次启动计时器

注意:在使用timer的时候,如果调用invalidate方法,那么这个计时器就不会再次生效。要想再次启动,需要重新创建新的timer.

    [_timer fire];
    [self initImageTimer];

-(void)initImageTimer{

    
    _timer = [NSTimer scheduledTimerWithTimeInterval:1
                                              target:self
                                            selector:@selector(didClickButton:) userInfo:nil
                                             repeats:YES];
//    [_timer fire];调用fire,这个计时器会立即执行,不会等待interval设置的时间
    
    NSRunLoop *mainLoop = [NSRunLoop mainRunLoop];
    
    [mainLoop addTimer:_timer forMode:NSRunLoopCommonModes];
}





http://www.niftyadmin.cn/n/748753.html

相关文章

[Abp vNext 源码分析] - 19. 多租户

一、简介 不格网 https://vbuge.com ABP vNext 原生支持多租户体系,可以让开发人员快速地基于框架开发 SaaS 系统。ABP vNext 实现多租户的思路也非常简单,通过一个 TenantId 来分割各个租户的数据,并且在查询的时候使用统一的全局过滤器(类…

Swift--struct与class的区别(汇编角度底层分析)

概述 传奇 https://m.xs86.com 相对Objective-C, Swift使用结构体Struct的比例大大增加了,其中Int, Bool,以及String,Array等底层全部使用Struct来定义!在Swift中结构体不仅可以定义成员变量(属性),还可以定义成员方法,和类比较相似,都是具有定义和使用属性,方法以及初始化器等…

隐藏状态栏

在开发过程中很多时候都要隐藏页面的状态栏: UIViewController中提供了一个prefersStatusBarHidden方法用于控制当前的控制器的状态栏是否隐藏。 prefersStatusBarHidden:方法的返回值为BOOL类型,默认为NO。通过重写这个方法,修改它的默认值&…

从0开发3D引擎(十一):使用领域驱动设计,从最小3D程序中提炼引擎(第二部分)

目录 上一篇博文下一篇博文本文流程回顾上文解释基本的操作开始实现准备建立代码的文件夹结构,约定模块文件的命名规则模块文件的命名原则一级和二级文件夹api_layer的文件夹application_layer的文件夹domain_layer的文件夹infrastructure_layer的文件夹index.html实…

UITableView的重用池优化

对于软件开发,表格视图是一个十分重要的UI视图。在iOS中,表格视图由UITableView这个类来提供支持。UITableView内部封装了一套复用机制,通过复用,开发者可以高效第展示数据量非常大的列表而不用担心内存方面的问题。 UITableView对…

前端公共图表数据大盘方案

前言 清风文学网 m.198200.com 前端常常会在的业务中后台开发数据统计图表,对于类似Echarts这种配置性极强的库,需要花费很多时间查看文档, 一个项目中统计图表大多情况下只占少部分,平时写的不多容易忘记配置,重复开…

js设置canvas的宽高(动态设置canvas的宽高)

设置canvas的宽高有两种方式&#xff1a; 1&#xff1a;在html的canvas标签中设置宽高 <body><canvas id"canvas" width"300" height"300"></canvas></body>2&#xff1a;在js中设置canvas的宽高注意&#xff1a;在js中…

Java并发编程(01):线程的创建方式,状态周期管理

本文源码&#xff1a;GitHub点这里 || GitEE点这里 一、并发编程简介 峡谷小说网 www.xiagu.org 1、基础概念 程序 与计算机系统操作有关的计算机程序、规程、规则&#xff0c;以及可能有的文件、文档及数据。 进程 进程是计算机中的程序&#xff0c;关于某数据集合上的一次…