Как остановить событие NStimer? [дубликат]

Вы не можете добавить к фактическому массиву - размер массива фиксируется во время создания. Вместо этого используйте List, который может вырасти, поскольку это должно.

, С другой стороны, сохраняют список массивов и связывают их всех только, когда Вы захватили все.

Видят сообщение в блоге Eric Lippert на массивах для большего количества детали и понимания, чем я мог реалистично обеспечить:)

47
задан Community 23 May 2017 в 11:54
поделиться

2 ответа

@interface
    NSTimer *autoTimer;

@implementation

// Start timer
    autoTimer = [NSTimer scheduledTimerWithTimeInterval:(3.0)
        target:self 
        selector:@selector(autoTimerFired:) 
        userInfo:nil 
        repeats:YES];

// Stop timer:
    [autoTimer invalidate];
    autoTimer = nil;
103
ответ дан 26 November 2019 в 19:15
поделиться

Во-первых, вы хотите сохранить указатель на таймер

self.packetTimer = [NSTimer timerWithTimeInterval:CONNECTION_TIMEOUT target:self selector:@selector(connectionTimeout:) userInfo:nil repeats:NO];
[[NSRunLoop currentRunLoop] addTimer:packetTimer forMode:NSDefaultRunLoopMode];

Если где-то еще в вашем коде вы хотите отменить его, просто позвоните:

[self.packetTimer invalidate];
self.packetTimer = nil;
43
ответ дан 26 November 2019 в 19:15
поделиться