这行代码是否正确重新内存管理(重新 NSDate 复制)?

发布于 2024-11-04 20:45:11 字数 431 浏览 4 评论 0原文

这行代码是否正确重新内存管理(重新 NSDate 复制)?

我有一个带有属性的类:

@property (nonatomic, retain) NSDate* start;
@property (nonatomic, retain) NSDate* coreWeStart;

现在在 init 方法中,假设已经设置了 self.start,将 coreWeStart 重新设置为同一日期是否正确:

    self.coreWeStart= [[self.start copy] autorelease];

只需仔细检查我的理解:

  1. 需要一个“副本”,否则它会引用到同一个对象并且
  2. 需要自动释放,就像我做的复制一样,

谢谢

is this line of code correct re memory management (re NSDate copy)?

I have a class with properties:

@property (nonatomic, retain) NSDate* start;
@property (nonatomic, retain) NSDate* coreWeStart;

Now in the init method, assuming self.start is already set, is this correct re setting the coreWeStart to the same date:

    self.coreWeStart= [[self.start copy] autorelease];

Just double checking my understanding that:

  1. needs a 'copy' as otherwise it would refer to the same object and
  2. needs an autorelease as I did do a copy

thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦断已成空 2024-11-11 20:45:11

我会说有点,但仍然可以做得更好。具体来说,您可以执行以下操作:

@property (nonatomic, copy) NSDate* coreWeStart;

...然后:

self.coreWeStart = self.start;

...用更少的代码获得相同的结果。还要确保在 dealloc 中执行 self.coreWeStart = nil (以及 self.start = nil )。

I would say kind of, but it could still be done better. Specifically, you could do:

@property (nonatomic, copy) NSDate* coreWeStart;

...and then:

self.coreWeStart = self.start;

...to get the same thing with less code. Also be sure to do self.coreWeStart = nil in dealloc (and self.start = nil too).

妄司 2024-11-11 20:45:11

是的。你明白了。

  • Copy 返回一个保留计数为 1 的新对象。
  • 将其分配给retain关键字属性将增加保留计数。
  • autorelease 将减少保留计数。

因此,您的对象具有保留计数为 1 的 coreWeStart 属性,它是 start 属性的副本。

Yep. You got it.

  • Copy returns a new object with a retain count of one.
  • assigning it to the retain keyword property will increment the retain count.
  • autorelease will decrement the retain count.

So your object has the coreWeStart property with a retain count of one, which is a copy of the start property.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文