У меня есть двойное время. Я не могу определить, почему я могу передать двойной метод в другом классе, но тот же метод не может попросить упомянутый двойной из класса она существует вПочему мои методы возвращают разные значения для одной и той же переменной
Мой заголовочный файл выглядит примерно так:.
@property (nonatomic) double time;
Моя реализация идет что-то вроде этого:
@implementation MainVewController
@synthesize time;
- (void) viewDidLoad
{
startTime = NSDate.date;
}
- (double) returnTime {
NSLog (@"time is disappearing?? %f", time);
return time;
}
- (double) logTime {
NSLog (@"for some reason, this one is working and returns a value %f", time);
return time;
}
Мой другой класс просит мой двойник:
@synthesize mainViewController = _mainViewController ;
- (MainViewController *)mainViewController {
if (!_mainViewController) _mainViewController = [[MainViewController alloc] init];
return _mainViewController;
}
- (BOOL)getTime {
double timeGotten = [self.mainViewController returnTime];
// why does this return 0?
return TRUE;
}
переменный времени постоянно обновляется в MainVewController:
time = [[NSDate date] timeIntervalSinceDate: startTime];
Где указано переменная времени в отношении двух методов? –
Как вы можете сказать, что этого не спрашивали в другом месте? FYI, вы НЕ ВЕРНУТЬ ДВОЙНУЮ .... и ваше двойное 'время' может не существовать. Установите точку останова. Сначала попробуйте проверить, существует ли файл self.mainViewController, затем проверьте значение времени и, пожалуйста, ВОЗВРАЩАЙТЕ его в случае необходимости 'timeGotten'. – Legolas
Оба returnTime и logTime вернут то же значение для кода, который вы указали. Насколько мы можем видеть, вы никогда не устанавливаете значение времени. –