---
title: "init(timeInterval:repeats:block:)"
framework: foundation
role: symbol
role_heading: Initializer
path: "foundation/timer/init(timeinterval:repeats:block:)"
---

# init(timeInterval:repeats:block:)

Initializes a timer object with the specified time interval and block.

## Declaration

```swift
init(timeInterval interval: TimeInterval, repeats: Bool, block: @escaping @Sendable (Timer) -> Void)
```

## Parameters

- `interval`: The number of seconds between firings of the timer. If interval is less than or equal to 0.0, this method chooses the nonnegative value of 0.0001 seconds instead.
- `repeats`: If true, the timer will repeatedly reschedule itself until invalidated. If false, the timer will be invalidated after it fires.
- `block`: A block to be executed when the timer fires. The block takes a single doc://com.apple.foundation/documentation/Foundation/Timer parameter and has no return value.

## Return Value

Return Value A new Timer object, configured according to the specified parameters.

## Discussion

Discussion You must add the new timer to a run loop, using add(_:forMode:). Then, after interval seconds have elapsed, the timer fires, executing block. (If the timer is configured to repeat, you don’t need to add the timer to the run loop again.)

## See Also

### Creating a Timer

- [scheduledTimer(withTimeInterval:repeats:block:)](foundation/timer/scheduledtimer(withtimeinterval:repeats:block:).md)
- [scheduledTimer(timeInterval:target:selector:userInfo:repeats:)](foundation/timer/scheduledtimer(timeinterval:target:selector:userinfo:repeats:).md)
- [scheduledTimer(timeInterval:invocation:repeats:)](foundation/timer/scheduledtimer(timeinterval:invocation:repeats:).md)
- [init(timeInterval:target:selector:userInfo:repeats:)](foundation/timer/init(timeinterval:target:selector:userinfo:repeats:).md)
- [init(timeInterval:invocation:repeats:)](foundation/timer/init(timeinterval:invocation:repeats:).md)
- [init(fire:interval:repeats:block:)](foundation/timer/init(fire:interval:repeats:block:).md)
- [init(fireAt:interval:target:selector:userInfo:repeats:)](foundation/timer/init(fireat:interval:target:selector:userinfo:repeats:).md)
