【问题标题】:Timestamp of object creation, it's possible?对象创建的时间戳,有可能吗?
【发布时间】:2012-11-28 09:58:14
【问题描述】:

只是出于好奇...
用 Objective-C 或其他语言可以知道对象创建的时间戳吗?

[_MyObj creationTime] ?

【问题讨论】:

  • Note: please don't downvote - 不要问这个。如果这是一个糟糕的问题,我会投反对票,如果这是一个好问题,我会投赞成票。

标签: objective-c object memory timestamp


【解决方案1】:

只需将其放入对象的 init 方法中

creationDate = [NSDate date];

假设你已经在对象的@interface 中声明了NSDate *creationDate;

现在您可以检索精确时间

- (NSString *)creationTime
{
   NSDateFormatter *timeFormatter = [[[NSDateFormatter alloc]init]autorelease];
   timeFormatter.dateFormat       = @"HH:mm:ss";
   NSString *timeString           = [timeFormatter stringFromDate: cretionDate];

   return timeString;
}

【讨论】:

    【解决方案2】:

    可能通过使用构造函数/析构函数来保存时间戳。

    【讨论】:

    • objective-c 没有缺点/目标 :(
    • @AnoopVaidya Objective-c 确实有构造函数和析构函数。它们被称为“alloc/init”和“dealloc”。
    • 但是根据我的 c++ 知识,您可以调用 box() 和 ~box() 来获取类框。但是在 obj-c 中你可以。在 obj-c 中,它们只是类似于 cons/desc 的假名称,但实际上它们不是。我可能错了。但我在某处读到这个
    • -init 很好,但 -dealloc 没那么多.. 见stackoverflow.com/questions/13563050/…
    • 他说“用 Objective-C 或其他语言”
    【解决方案3】:

    对类进行子类化并添加一个新的 ivar(比如 createdOn),并在该类的构造函数或 init 方法中保存当前时间。

    这样您就可以随时调用该 object.createdOn....

    【讨论】:

      猜你喜欢
      • 2011-07-16
      • 1970-01-01
      • 2014-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-18
      相关资源
      最近更新 更多