Wenn ich auf Start klicken Sie auf die stopWatchLabel
zeigt folgende (seine statische, nothings läuft):NSTimer nicht nur auf Stoppuhr App arbeitet an SIMULATOR (Zeigt statische seltsame Zahl)
- HINWEIS: Wenn ich diese App testen auf Mein iPhone läuft alles wie erwartet. Überhaupt keine Probleme.
Kann jemand erklären warum?
.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
{
NSTimer *stopWatchTimer;
NSDate *startDate;
}
@property (strong, nonatomic) IBOutlet UILabel *stopWatchLabel;
- (IBAction)startButtonTapped:(id)sender;
- (IBAction)stopButtonTapped:(id)sender;
-(void)updateTimer;
@end
.m
- (IBAction)startButtonTapped:(id)sender {
stopWatchTimer = [NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(updateTimer)
userInfo:nil
repeats:YES];
}
- (void)updateTimer
{
NSDate *currentDate = [NSDate date];
NSTimeInterval timeInterval = [currentDate timeIntervalSinceDate:startDate];
NSDate *timerDate = [NSDate dateWithTimeIntervalSince1970:timeInterval];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0.0]];
NSString *timeString=[dateFormatter stringFromDate:timerDate];
stopWatchLabel.text = timeString;
}
- (IBAction)stopButtonTapped:(id)sender {
[stopWatchTimer invalidate];
}
See [hier] (http://stackoverflow.com/questions/1189252/how-to-convert-an-nstimeinterval-seconds-into-minutes) für das Erhalten der Stunden und Minuten direkt von der 'NSTimeInterval '. Sie müssen kein neues Datum erstellen und es nicht formatieren. – Joe
Danke für den Hinweis. –