hinzugefügt habe ich einen Code-Schnipsel wie folgt aus:NSTimer nicht Wähler feuern, wenn sie mit scheduledTimerWithTimeInterval
m_timer = [NSTimer scheduledTimerWithTimeInterval:timeOutInSeconds
target:self
selector:@selector(activityIndicatorTimer:)
userInfo:nil
repeats:NO];
Wenn ich es wie so der Wähler nennen wird nach den gegebenen timeOutInSeconds nicht gefeuert. Wenn ich es jedoch wie folgt ändere, wird der Selektor zweimal aufgerufen.
NSLog(@"Timer set");
m_timer = [NSTimer scheduledTimerWithTimeInterval:timeOutInSeconds
target:self
selector:@selector(activityIndicatorTimer:)
userInfo:nil
repeats:NO];
[[NSRunLoop currentRunLoop] addTimer:m_timer forMode:NSRunLoopCommonModes];
Kann mir jemand einen Vorschlag machen, was ich wahrscheinlich falsch mache?
Ich bin mit XCode 5.1, und aufbauend auf 7.1.1 iPhone 4S
Meine Vermutung ist Sie Laichen diesen Timer einen Hintergrund-Thread ohne Runloop aus (die meisten noch kein Konto haben) 'scheduledTimerWithTimeInterval' muss von einem Thread aufgerufen werden mit einem Runloop (normalerweise der Hauptthread). Um den Timer zu Runloop hinzuzufügen, wie Sie sind, sollten Sie stattdessen 'timerWithTimeInterval ...' verwenden. –
Call '[m_timer Feuer]' nach der ersten Option –
Danke David, ich glaube, Sie hatten Recht. Mit Ihrer Hilfe scheint es, dass ich das Problem gefunden habe. Wenn Sie dies als Antwort einreichen möchten, anstatt es zu kommentieren, kann ich es akzeptieren. – xceph