【问题标题】:alloc initWithObjects vs arrayWithObjectalloc initWithObjects 与 arrayWithObject
【发布时间】:2013-02-18 09:04:58
【问题描述】:

我不明白为什么要写这些代码

icons = [[NSArray alloc] initWithObjects:
             @"appointment",
             @"work",
             @"anniversary",
             @"me",
             nil];

应用程序崩溃了。但是后来我换成了这些代码

icons = [NSArray alloc] arrayWithObjects:
             @"appointment",
             @"work",
             @"anniversary",
             @"me",
             nil];

并且应用程序没有崩溃。 但是这些方法之间的效果是一样的! 我不知道为什么?你能帮帮我吗?

【问题讨论】:

  • 提供更多代码和崩溃日志。
  • 这些方法因内存管理而异。第二个代码为您提供了一个自动释放的对象,如果它有效,您可能在某处错过了retain 调用。当然,我们需要更多代码才能确定。
  • “您可能在某处错过了保留电话”。我想你想说的是 release" 而不是 retain ?是的,谢谢

标签: iphone ios


【解决方案1】:
  1. initWithObjects 方法意味着您必须在不需要时释放数组的对象,因为这是实例方法,更多详细信息click

  2. arrayWithObjects 方法意味着您不需要在不需要时释放数组的对象,因为这是类方法,更多详细信息click

如果您不清楚这些点,请回复我..

【讨论】:

  • 谢谢你。我忘记发布了:P
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-05
  • 2012-01-23
相关资源
最近更新 更多