iOS中的`scheduledTimerWithTimeInterval`方法用于创建一个定时器,它可以立刻启动或者在指定的时间间隔后启动。这个方法的定义如下:
```objc
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(nullable id)userInfo repeats:(BOOL)yesOrNo;
```
参数说明:
- `ti`:指定定时器触发的时间间隔,单位是秒。
- `aTarget`:定时器的目标对象,一般是当前视图控制器或自定义类。
- `aSelector`:指定定时器触发时要执行的方法。
- `userInfo`:传递给定时器触发方法的额外参数,可以为nil。
- `yesOrNo`:指定定时器是否重复执行。
如果想要立即启动定时器,可以使用`performSelector:withObject:afterDelay:`方法,语法如下:
```objc
- (void)performSelector:(SEL)aSelector withObject:(nullable id)anArgument afterDelay:(NSTimeInterval)delay;
```
在这个方法中,`aSelector`是要执行的方法,`anArgument`是要传递给该方法的参数,`delay`是延迟时间,单位是秒。
请根据提供的内容完成内容重构,并保持段落结构:
```objective-c
#import "ViewController.h"
@interface ViewController ()
@property (nonatomic, strong) NSTimer *timer;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// 创建定时器并立即启动
self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerMethod:) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
[self performSelector:@selector(timerMethod:) withObject:nil afterDelay:0];
}
- (void)timerMethod:(NSTimer *)timer {
NSLog(@"定时器触发");
// 执行定时任务
}
@end
```
以下是重构后的内容,保留了原始段落结构:
```
- (void)viewDidLoad {
// performSelector:withObject:afterDelay:timerMethod:
[self performSelector:@selector(methodWithObject:) withObject:nil afterDelay:1.0];
}
- (void)methodWithObject:(id)object {
NSLog(@"Object: %@", object);
}
// 结论
// scheduledTimerWithTimeIntervalperformSelector:withObject:afterDelay:
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(methodWithObject:) userInfo:nil repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
// scheduledTimerWithTimeInterval
NSInteger timeInterval = 3;
NSTimer *timer2 = [NSTimer scheduledTimerWithTimeInterval:timeInterval target:self selector:@selector(methodWithObject:) userInfo:nil repeats:NO];
[[NSRunLoop mainRunLoop] addTimer:timer2 forMode:NSRunLoopCommonModes];
- (void)methodWithObject:(id)object2 {
NSLog(@"Object2: %@", object2);
}
```