在iphone的数据库中存储全局本地时间变量

在iphone的数据库中存储全局本地时间变量,iphone,objective-c,delegates,nsdate,uiapplicationdelegate,Iphone,Objective C,Delegates,Nsdate,Uiapplicationdelegate,我一直试图以NSDATE的形式存储全局变量,但它似乎总是出错。我试图在应用程序开始时获取当前日期,然后在应用程序完成后将该日期存储在数据库中。 下载当前日期的原因:下载数据可能需要一些时间,并且在这段时间之间会损失几秒钟 在AppDelegate.h中 NSDate *today; @property (nonatomic, retain) NSDate *today; 在AppDelegate.m中 today = [NSDate date]; 当我在view controller中查看

我一直试图以NSDATE的形式存储全局变量,但它似乎总是出错。我试图在应用程序开始时获取当前日期,然后在应用程序完成后将该日期存储在数据库中。 下载当前日期的原因:下载数据可能需要一些时间,并且在这段时间之间会损失几秒钟

在AppDelegate.h中

NSDate *today;

@property (nonatomic, retain) NSDate *today;
在AppDelegate.m中

today = [NSDate date];
当我在view controller中查看今天的日期时,它将停止运行

在ViewController.m中

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

从委托方法中检索日期变量的正确方法是什么?

在您的代码示例中,看起来您今天正在重新定义日期变量。但是,无论哪种方式,今天都不应该直接为您分配,您需要像这样设置属性

self.today = [NSDate date];
原因是
[NSDate]
是一个自动删除的对象,当您使用该属性时,它将为您正确保留该属性。

您需要立即分配并使用自声明:

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

而不是:
NSDate*today=[NSDate-date]像这样,您正在覆盖实例变量

今天不需要分配,属性会处理这些,我已经更新了代码。很抱歉,我用“今天”字段写错了。