Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 用按钮执行一段代码几秒钟/分钟?_Ios_Xcode_Uibutton_Nstimer - Fatal编程技术网

Ios 用按钮执行一段代码几秒钟/分钟?

Ios 用按钮执行一段代码几秒钟/分钟?,ios,xcode,uibutton,nstimer,Ios,Xcode,Uibutton,Nstimer,我只想在用户按下“开始”按钮并自行停止某个方法时运行20秒,而不是使用按钮来执行。但当用户在下一轮20秒后按下启动按钮时,它也会触发。 如何使用NStimer来实现这一点? 很抱歉没有发布任何代码 提前谢谢 “跑20秒”是什么意思?在这20秒内它应该多久运行一次?也许让我们了解一下你实际上在做什么,有助于找出解决这个问题的最佳方法。这是我用来校准iphone加速的一段代码。当用户按下启动按钮时,我希望我的校准功能在5秒后启动。然后执行校准代码20秒,并自行停止,无需使用其他按钮停止。这里的读数将

我只想在用户按下“开始”按钮并自行停止某个方法时运行20秒,而不是使用按钮来执行。但当用户在下一轮20秒后按下启动按钮时,它也会触发。 如何使用NStimer来实现这一点? 很抱歉没有发布任何代码
提前谢谢

“跑20秒”是什么意思?在这20秒内它应该多久运行一次?也许让我们了解一下你实际上在做什么,有助于找出解决这个问题的最佳方法。这是我用来校准iphone加速的一段代码。当用户按下启动按钮时,我希望我的校准功能在5秒后启动。然后执行校准代码20秒,并自行停止,无需使用其他按钮停止。这里的读数将存储在一个数组中。正如您所猜测的,
NSTimer
是您想要使用的。你对NSTimer的哪一部分有问题?实际上我不知道用NSTimer执行代码20秒,然后在word之后停止执行。问题的困难部分。:)@user1118321-我认为使用以下代码可以使用uderinfo停止函数。但是不知道。。。你能帮我吗(NSTimer*)scheduledTimerWithTimeInterval:(NSTimeInterval)秒目标:(id)目标选择器:(SEL)选择器用户信息:(id)用户信息重复:(BOOL)重复“运行20秒”是什么意思?在这20秒内它应该多久运行一次?也许让我们了解一下你实际上在做什么,有助于找出解决这个问题的最佳方法。这是我用来校准iphone加速的一段代码。当用户按下启动按钮时,我希望我的校准功能在5秒后启动。然后执行校准代码20秒,并自行停止,无需使用其他按钮停止。这里的读数将存储在一个数组中。正如您所猜测的,
NSTimer
是您想要使用的。你对NSTimer的哪一部分有问题?实际上我不知道用NSTimer执行代码20秒,然后在word之后停止执行。问题的困难部分。:)@user1118321-我认为使用以下代码可以使用uderinfo停止函数。但是不知道。。。你能帮我吗(NSTimer*)scheduledTimerWithTimeInterval:(NSTimeInterval)秒目标:(id)目标选择器:(SEL)选择器userInfo:(id)userInfo repeats:(BOOL)repeats我还没有在我的代码中实现这一点!但我还是接受你们的回答,因为你们是第一个用最伟大的方式回答我的人!即使经历了这些,也让我觉得你是一位伟大的老师。谢谢你,先生!愿你的梦想成真!山姆,真诚地,谢谢你的评论!如果你有问题或疑问,请将其作为评论转发给我,我会看到的。总有一天你也会成为一名伟大的老师!我猜,(timer=[NSTimer]scheduledTimerWithTimeInterval:time)这里的时间应该被interval替换,当我运行代码程序时,它会在给出错误的这一行终止,[ViewController'myTimeRoutine]:发送到实例0x1a4b0的无法识别的选择器。得到这样一个错误我做错了什么?确保@selector语句的末尾有“:”,并且方法与我写的完全一样。该错误意味着系统在您的类中找不到与您创建计时器时指定的方法匹配的方法。我还没有在代码中实现它!但我还是接受你们的回答,因为你们是第一个用最伟大的方式回答我的人!即使经历了这些,也让我觉得你是一位伟大的老师。谢谢你,先生!愿你的梦想成真!山姆,真诚地,谢谢你的评论!如果你有问题或疑问,请将其作为评论转发给我,我会看到的。总有一天你也会成为一名伟大的老师!我猜,(timer=[NSTimer]scheduledTimerWithTimeInterval:time)这里的时间应该被interval替换,当我运行代码程序时,它会在给出错误的这一行终止,[ViewController'myTimeRoutine]:发送到实例0x1a4b0的无法识别的选择器。得到这样一个错误我做错了什么?确保@selector语句的末尾有“:”,并且方法与我写的完全一样。该错误意味着系统无法在类中找到与创建计时器时指定的方法匹配的方法。
// Assume ARC - otherwise do the proper retains/releases
{
    NSTimer *timer; // keep a reference around so you can cancel the timer if you need to
    NSDate *timerDate;
}

- (IBAction)buttonPressed:(id)sender
{
    // disable button til the time has passed
    [sender setEnabled:NO];

    // make sure its diabled til we're done here
    timerDate = [NSDate date];
    NSTimeInterval interval = 1; // 1 gets you a callback every second. If you just wnat to wait 20 seconds change it
    // schedule it
    timer = [NSTimer ]scheduledTimerWithTimeInterval:time target:self selector:@selector(myTimeRoutine:) userInfo:nil repeats:YES];
}

- (void)myTimeRoutine:(NSTimer *)timer
{
    // do something ...

    NSTimeInterval interval = -[timerDate timeIntervalSinceNow]; // return value will be negative, so change sign
    if(interval >= 20) {
        // I'm done now
        myButton.enabled = YES; // so it can be tapped again
        [timer cancel];         // dont want to get any more messages
        timer = nil;            // ARC way to release it
        timerDate = nil;
    }
}