У вас есть
id startTime;
в глобальной области видимости, а также
NSDate *startTime = [NSDate date];
внутри viewDidLoad
.Второй оператор создает локальную переменную с именем startTime
, которая скрывает глобальную переменную.Используйте взамен
startTime=[[NSDate date] retain];
.
Тем не менее, я бы предложил вам не для создания глобальной переменной.Вместо этого сделайте его переменной экземпляра и свойством:
@interface TimeViewController :NSObject{
....
NSDate*startDate;
}
...
@end
и, как сказал Куби, не забудьте
-(void)dealloc{
[startDate release];
[super dealloc];
}
Я бы также предложил , а не использовать id
для удержания известного объекта.Кто тебе это сказал?Это очень плохая практика.Даже когда вы объявляете глобальную переменную, вы должны использовать
NSDate*startDate;
, чтобы компилятор мог предупреждать вас о неопределенных методах.