У меня есть 3 вопроса, не все из которых имеют непосредственное отношение к вашему вопросу.
Почему -(IBAction)jumpDate
является IBAction, если вы вызываете этот метод из своего кода, вы должны изменить его на(void)
и если IBAction должен вызвать его, вызовите его из другого метода, который будет действием для этой кнопки.
Есть ли в вашем коде пробел до userInfo
в этом вызове:
timerDate=[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(jumpDate)userInfo:nil repeats:YES];
Вы убедились, что все ваши IBOutlet настроены правильно?Я перестал считать времена, которые я забыл.
[gregDate setText : [NSString stringWithFormat:@" %@ ",tomorrow]];
Что такое gregDate?это IBOutlet, указывающий на UILabel?
И вы, вероятно, это подтвердили, но этот вызов возвращает правильную строку?
Вы не должны вызывать свой метод IBAction
из своего таймерапо двум причинам:
1. Я действительно считаю, что это плохой дизайн, он вводит в заблуждение роль этого метода, поскольку он также вызывается из таймера.
2. Сигнатура метода не соответствует той, которая нужна NSTimer
aSelector: сообщение, которое нужно отправить цели, когда срабатывает таймер.Селектор должен иметь следующую подпись: - (void) timerFireMethod: (NSTimer *) theTimer
Этот текст взят из ссылки на класс NSTimer .