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

时间:2011-07-21 15:04:11

标签: iphone objective-c delegates nsdate uiapplicationdelegate

我一直在尝试以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 个答案:

答案 0 :(得分:1)

在您的代码示例中,您似乎正在重新定义今天。但是你今天不应该直接分配,你需要像这样设置属性。

self.today = [NSDate date];

原因是因为[NSDate date]是一个自动释放的对象,当您使用该属性时,它将为您正确保留它。

答案 1 :(得分:0)

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

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

而不是:NSDate *today = [NSDate date];这样你就会覆盖实例变量