【问题标题】:NSArray copying after autorelease自动释放后的 NSArray 复制
【发布时间】:2014-03-20 15:24:09
【问题描述】:

我很好奇如果我有这样的代码会发生什么。

NSArray* myArray = [NSArray alloc]initWithObjects:@"a", @"b", @"c", nil];
[myArray autorelease];
myArray = [otherArray copy];

autorelease 将在当前事件循环结束时标记要释放的内存。

这是否意味着[otherArray copy] 在事件循环结束时被释放?

【问题讨论】:

  • 如果可能,请在您的项目中启用 ARC。它会为您省去很多麻烦。

标签: ios copy nsarray autorelease


【解决方案1】:

没有。当您自动释放对象时,objects 被添加到自动释放池中,而不是指向这些对象的指针。您正在自动释放一个数组,如果您将另一个数组复制到该指针中,它不会受到影响。无论如何,您应该使用 ARC,而不是使用 auto/release。

【讨论】:

  • 是的,我正在迁移到 ARC。刚看到代码所以很好奇。谢谢
猜你喜欢
  • 1970-01-01
  • 2011-09-19
  • 1970-01-01
  • 2013-01-18
  • 2011-11-09
  • 1970-01-01
  • 1970-01-01
  • 2021-02-13
  • 1970-01-01
相关资源
最近更新 更多