Хранить глобальные переменные местного времени в базе данных в iphone - PullRequest
0 голосов
/ 21 июля 2011

Я пытался хранить глобальные переменные в форме NSDATE, но, похоже, всегда выдает ошибку.Я пытаюсь получить текущую дату в начале приложения, а затем сохранить эту дату, как только приложение будет завершено в базе данных.Причина загрузки текущей даты: загрузка данных, которая может занять некоторое время и потеряет несколько секунд.

В AppDelegate.h

NSDate *today;

@property (nonatomic, retain) NSDate *today;

В AppDelegate.m

today = [NSDate date];

Когда я смотрю дату сегодня в контроллере представления, он перестает работать.

В ViewController.m

AppDelegate *appDelegate= [[UIApplication sharedApplication] delegate];
[appDelegate today]; // Error here 

Как правильно получить переменную даты из метода делегата

Ответы [ 2 ]

1 голос
/ 21 июля 2011

В вашем примере кода похоже, что вы переопределяете сегодня. Но вы не должны быть назначены сегодня напрямую в любом случае, вам нужно установить это свойство следующим образом.

self.today = [NSDate date];

Причина в том, что [NSDate date] является автоматически выпущенным объектом, и когда вы используете свойство, оно должным образом сохранит его для вас.

0 голосов
/ 21 июля 2011

Вам нужно выделить сегодня и использовать самостатификацию:

//In AppDelegate.m
today = [[NSDate alloc] init];
self.today = [NSDate date];

а не: NSDate *today = [NSDate date]; вот так вы перезаписываете переменную экземпляра

...