以+scheduledTimerWithTimeInterval...的方式触发的timer,...

一、引言

在iOS中,timer是一个非常常用的工具类,可以用于一些计时,定时器等操作,让我们可以在特定的时间执行一些任务。

iOS中的定时器有三种类型:

1.立即开始执行,不重复执行;

2.在指定时间后执行,不重复执行;

3.在指定时间后开始执行,重复执行。

我们在使用定时器的时候,可以选择使用scheduledTimerWithTimeInterval的方式来触发timer,具体的使用方法及案例说明,将在下文中详细介绍。

二、使用方法

在iOS中使用scheduledTimerWithTimeInterval来触发timer,需要使用到NSTimer类的相关方法。

通过这个方法我们可以创建循环定时器,定时器创建之后会自动开启,并且可以自己修改执行时间间隔。

创建一个定时器非常简单,我们只需要使用如下方法:

```swift

let timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(self.timerCallback), userInfo: nil, repeats: true)

```

scheduledTimerWithTimeInterval会返回一个timer对象,其中:

timeInterval:时间间隔

target:定时器响应方法所在的对象

selector:定时器响应方法

userInfo:一个可选的Any对象,用于在定时器响应方法中使用

repeats:是否重复执行

三、案例说明

下面我们通过几个实际的案例来说明用scheduledTimerWithTimeInterval的方式触发timer的使用方法。

1. 实现一个每秒刻度器

```swift

class TimerViewController: UIViewController {

var count = 0 // 定义计时器初始值

override func viewDidLoad() {

super.viewDidLoad()

let timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(self.timerCallback), userInfo: nil, repeats: true)

}

@objc func timerCallback() {

count += 1

print(count)

}

}

```

在这个例子中,我们创建了一个直接重复执行每秒钟打印次数的定时器。

2. 实现一个倒计时

```swift

class TimerViewController: UIViewController {

var count = 10 // 定义计时器初始值

override func viewDidLoad() {

super.viewDidLoad()

let timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(self.timerCallback), userInfo: nil, repeats: true)

}

@objc func timerCallback() {

if count <= 0 {

// 倒计时结束,显示alert

let alert = UIAlertController(title: "倒计时结束", message: "时间到了", preferredStyle: .alert)

present(alert, animated: true, completion: nil)

} else {

count -= 1

print(count)

}

}

}

```

在这个例子中,我们创建了一个每秒倒计时的定时器,当倒计时结束的时候,会弹出一个alert。

3. 实现一个简单重复任务

```swift

class TimerViewController: UIViewController {

override func viewDidLoad() {

super.viewDidLoad()

let timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(self.timerCallback), userInfo: nil, repeats: true)

}

@objc func timerCallback() {

print("任务执行成功")

}

}

```

在这个例子中,我们创建了一个简单的每秒钟执行一次的任务,没有其他的特殊需求。

四、总结

通过上述案例及相关介绍,我们可以看出,scheduledTimerWithTimeInterval是一个非常简单、方便的实现循环定时器的方法,在iOS中使用非常广泛,可以用于计时、倒计时、简单的任务执行等操作。

需要注意的是,在使用NSTimer时,一定要注意避免循环引用的问题,也要避免timer被释放时,响应方法依然被调用的问题。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/

点赞(26) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部