【问题标题】:Store global local time variables in the database in iphone在iphone的数据库中存储全局本地时间变量
【发布时间】:2011-07-21 15:04:10
【问题描述】:

我一直试图以 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 

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

【问题讨论】:

    标签: iphone objective-c delegates nsdate uiapplicationdelegate


    【解决方案1】:

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

    self.today = [NSDate date];
    

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

    【讨论】:

    • 我已经更新了我的代码。很抱歉,我在今天的字段中写错了。
    【解决方案2】:

    您需要分配今天并使用自我声明:

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

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

    【讨论】:

    • 今天不需要分配,属性会处理的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-18
    • 1970-01-01
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 2020-10-10
    • 2021-09-18
    相关资源
    最近更新 更多