相关疑难解决方法(0)

如何在Swift中使用NSTimer?

我试过了

var timer = NSTimer()
timer(timeInterval: 0.01, target: self, selector: update, userInfo: nil, repeats: false)
Run Code Online (Sandbox Code Playgroud)

但是,我说错了

'(timeInterval: $T1, target: ViewController, selector: () -> (), userInfo: NilType, repeats: Bool) -> $T6' is not identical to 'NSTimer'
Run Code Online (Sandbox Code Playgroud)

nstimer nstimeinterval ios swift

246
推荐指数
11
解决办法
30万
查看次数

在Swift中使用NSTimer

在这种情况下,永远不会调用timerFunc().我错过了什么?

class AppDelegate: NSObject, NSApplicationDelegate {

    var myTimer: NSTimer? = nil

    func timerFunc() {
        println("timerFunc()")
    }

    func applicationDidFinishLaunching(aNotification: NSNotification?) {
        myTimer = NSTimer(timeInterval: 5.0, target: self, selector:"timerFunc", userInfo: nil, repeats: true)
    }
}
Run Code Online (Sandbox Code Playgroud)

nstimer swift

42
推荐指数
6
解决办法
5万
查看次数

IOS:停止NSTimer

可能重复:
NSTimer不会停止

我有这个代码:

[NSTimer scheduledTimerWithTimeInterval:110.0
                                 target:self
                               selector:@selector(targetMethod:)
                               userInfo:nil
                                repeats:YES];

- (void) targetMethod:(NSTimer) timer{
NSLog(@"Hello World");}
Run Code Online (Sandbox Code Playgroud)

在targetMethod我可以用[timer invalidate]停止计时器,但是在这个方法之外,我怎么能停止targetMethod?

xcode nstimer ios

29
推荐指数
2
解决办法
4万
查看次数

NSTimer不会停止

我有一个计时器,viewWillAppear在调用方法时触发,并在调用viewDidDisappear方法时无效.但是在视图之间进行一定量的切换之后,计时器即使在无效之后也会继续触发.有什么问题?

这是我的代码:

NSTimer *timer;

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    timer = [NSTimer scheduledTimerWithTimeInterval: 0.2f
                     target: self
                     selector:@selector( timerAction )
                     userInfo:nil
                     repeats:YES];
}

-(void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    [timer invalidate];
    timer = nil;
}

-(void) timerAction
{
    NSLog(@"timerAction");
}
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch timer

22
推荐指数
3
解决办法
2万
查看次数

NSTimer不会因无效而停止

我像这样添加计时器

tim=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(repeatTim) userInfo:nil repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:tim forMode:NSDefaultRunLoopMode];
Run Code Online (Sandbox Code Playgroud)

蒂姆是我班的NSTimer财产.

然后我点击按钮就停止它

[[fbt tim] invalidate];
[fbt setTim:nil];
Run Code Online (Sandbox Code Playgroud)

fbt它是我班级的实例.

如果我只调用invalidate然后它不会停止,但如果我将它设置为nil然后我得到了EXC_BREAKPOINT

这里选择器中的repeatTim方法的代码

AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
[appDelegate.wbv stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"intal()"]];
Run Code Online (Sandbox Code Playgroud)

我试着打电话给初始化无效

dispatch_async(dispatch_get_main_queue(), ^{})
Run Code Online (Sandbox Code Playgroud)

它也不会停止计时器.

nstimer invalidation ios

6
推荐指数
2
解决办法
7179
查看次数

无法使(停止)NSTimer无效

可能重复:
NSTimer不会停止

我正在使用NSTimer在播放音频时更新滑块的值.

 if (sliderUpdateTimer) {
    [sliderUpdateTimer invalidate];
    sliderUpdateTimer=nil;
}

sliderUpdateTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateSliderForAudio) userInfo:nil repeats:YES];
Run Code Online (Sandbox Code Playgroud)

一旦音频播放完毕,我在audioPlayer委托方法中使Timer无效.

-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{
NSLog(@"audioPlayerDidFinishPlaying");
[player release];
audioPlayer=nil;

[sliderUpdateTimer invalidate];
[sliderUpdateTimer release];
sliderUpdateTimer=nil;
Run Code Online (Sandbox Code Playgroud)

}

委托方法被调用,但计时器没有停止....我只有一次线程,我正在运行计时器.但仍然计时器不会停止......欢迎任何这方面的帮助......

iphone nstimer ios

2
推荐指数
1
解决办法
4480
查看次数