【问题标题】:Objective-C and autorelease on returnObjective-C 和返回时自动释放
【发布时间】:2011-03-09 09:33:24
【问题描述】:

是两种方法

- (id) myFirstMethod
{
  NSObject* anObject = [[NSObject alloc] init];
  [anObject autorelease];
  return anObject;
}

- (id) mySecondMethod
{
  NSObject* anObject = [[NSObject alloc] init];
  return [anObject autorelease];
}

一样吗?

【问题讨论】:

  • 这两种方法实际上都无效——对象周围的括号不正确。
  • @Chuck - 对,他们只是错别字。已编辑。

标签: objective-c autorelease


【解决方案1】:

是的,这两种方法是相同的。每当你写一个嵌套函数或多行相同的代码,编译后都是一样的。

【讨论】:

    【解决方案2】:

    你可以在回报中做任何事情:

    - (id) myThirdMethod {
        return [[[NSObject alloc]init]autorelease];
        }
    

    【讨论】:

    • 谢谢,我可以 - 但对我的眼睛来说太丑了:)
    【解决方案3】:

    是的,它们是相同的,但它们所做的只是导致编译器错误。

    [anObject] 是不允许的。而NSObject anObject 也是无效语法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-22
      • 1970-01-01
      相关资源
      最近更新 更多