我一直在尝试以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
从委托方法中检索日期变量的正确方法是什么?
答案 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];
这样你就会覆盖实例变量