我正在尝试学习如何使用NSTimer
s,我想到了以下几点: 创建一个开关。让计时器在应用程序开始时开始,并且在每一秒之后,都会调用一个更改开关状态的函数。
这是我到目前为止所做的:
我在头文件 ViewControl.h 中声明了定时器和开关:
//Timer
{NSTimer *timer;}
@property (weak, nonatomic) IBOutlet UISwitch *zeSwitch;
然后,在 ViewControl.m 文件中,我定义了以下内容:
- (IBAction)zeSwitch:(id)sender {
UISwitch *zeSwitchSatus = (UISwitch *) sender;
BOOL yn = zeSwitchSatus.isOn;
[zeSwitch setOn:yn animated:YES];
}
- (void)viewDidLoad
{
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self
selector:@selector(zeSwitch) userInfo:nil repeats:YES];
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
所以我希望当我运行代码时,我会看到一个打开或关闭的开关。然后我会看到它随着时间的推移自动改变其状态,而无需我干预。
但这没有用!我首先得到上面的图像。没有什么变化。然后当我按下开关时它崩溃了。(但我的想法是根本不碰它。)
有任何想法吗?